UNPKG

@cuba-platform/front-generator

Version:
84 lines 3.09 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const assert = require("assert"); const init_1 = require("../../../init"); const fs = require("fs"); const util_1 = require("util"); const path = require("path"); const sdk_generator_1 = require("../../../generators/sdk/sdk-generator"); const YeomanEnvironment = require("yeoman-environment"); const chai_1 = require("chai"); const studio_integration_1 = require("../../../common/studio/studio-integration"); const modelPath = require.resolve('../../fixtures/mpg-projectModel.json'); const rimraf = (0, util_1.promisify)(require('rimraf')); const SDK_DIR = `src/test/generated/sdk`; const SDK_ALL_DIR = path.join(process.cwd(), `${SDK_DIR}/all`); const SDK_MODEL_DIR = path.join(process.cwd(), `${SDK_DIR}/model`); describe('sdk generator test', () => { before(() => { console.log('cleanup', SDK_DIR); rimraf(`${SDK_DIR}/*`); }); it('should generate sdk:all', () => rimraf(`${SDK_ALL_DIR}/*`) .then(() => (0, init_1.generate)('sdk', 'all', { model: modelPath, dest: SDK_ALL_DIR, debug: true })) .then(() => { assert.ok(fs.existsSync(`services.ts`)); assert.ok(fs.existsSync(`queries.ts`)); assert.ok(fs.existsSync(`enums/enums.ts`)); assert.ok(fs.existsSync(`entities/base`)); })); it('should generate sdk:model', () => rimraf(`${SDK_MODEL_DIR}/*`) .then(() => (0, init_1.generate)('sdk', 'model', { model: modelPath, dest: SDK_MODEL_DIR, debug: true })) .then(() => { assert.ok(fs.existsSync(`enums/enums.ts`)); assert.ok(fs.existsSync(`entities/base`)); //services and queries should NOT be generated for sdk:model mode assert.ok(!fs.existsSync(`services.ts`)); assert.ok(!fs.existsSync(`queries.ts`)); })); it('should generates sdk for empty model', () => { //TODO }); it('should fail writing if no model provided', (done) => { const Gen = class extends sdk_generator_1.SdkModelGenerator { // noinspection JSUnusedGlobalSymbols testing() { this.writing(); } }; runGenerator(Gen, e => { (0, chai_1.expect)(e.message).eq('Skip sdk generation - no project model provided'); done(); }); }); it('should fail if CUBA not connected', (done) => { const Gen = class extends sdk_generator_1.SdkAllGenerator { // noinspection JSUnusedGlobalSymbols testing() { this.prompting(); } }; runGenerator(Gen, e => { (0, chai_1.expect)(e.message).eq(studio_integration_1.ERR_STUDIO_NOT_CONNECTED); done(); }); }); }); function runGenerator(genClass, onError) { const env = new YeomanEnvironment(); env.registerStub(genClass, 'Gen'); // @ts-ignore env.on('error', e => { onError(e); }); env.run('Gen'); } //# sourceMappingURL=sdk-generator.test.js.map