UNPKG

@nestjsplus/lib-starter

Version:

Boilerplate for building installable NestJS libraries

80 lines (79 loc) 3.19 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const testing_1 = require("@angular-devkit/schematics/testing"); const path = require("path"); const collectionPath = path.join(__dirname, '../collection.json'); const workspaceFiles = [ '/nest-cli.json', '/package.json', '/src/app.controller.ts', '/src/app.module.ts', '/src/app.service.ts', '/src/main.ts', ]; describe('install schematic tests', () => { const runner = new testing_1.SchematicTestRunner('schematics', collectionPath); const projectOptions = {}; let appTree; beforeEach(() => { appTree = runner.runSchematic('generate-project', projectOptions); }); it('generates basic install with default name', () => { const options = { genEnv: false, genDemo: false, envStrategy: 'static', sourceRoot: 'src', }; const resultFiles = [ ...workspaceFiles, '/src/config/README.md', '/src/config/config.module.ts', '/src/config/config.service.ts', ]; const tree = runner.runSchematic('nest-add', options, appTree); expect(tree.files).toEqual(resultFiles); expect(tree.readContent('/package.json')).toContain('start:configtrace'); expect(tree.readContent('/src/config/config.module.ts')).toContain('export class ConfigModule'); expect(tree.readContent('/src/app.module.ts')).toContain("import { ConfigModule } from './config/config.module';"); expect(tree.readContent('/src/app.module.ts')).toContain('imports: [ConfigModule'); }); it('imports ConfigTestModule when genDemo option is true', () => { const options = { genEnv: false, genDemo: true, envStrategy: 'static', sourceRoot: 'src', }; const tree = runner.runSchematic('nest-add', options, appTree); expect(tree.readContent('/src/app.module.ts')).toContain('imports: [ConfigModule, ConfigTestModule]'); expect(tree.readContent('/src/app.module.ts')).toContain("import { ConfigTestModule } from './config-test/config-test.module';"); }); it('generates environments folder when genEnv option is true', () => { const options = { genEnv: true, genDemo: false, envStrategy: 'static', sourceRoot: 'src', }; const tree = runner.runSchematic('nest-add', options, appTree); expect(tree.readContent('/environments/development.env')).toContain('MY_GREETING=Hello from ConfigModule'); }); it('generates basic install with custom name', () => { const options = { name: 'foo', genEnv: false, genDemo: false, envStrategy: 'static', sourceRoot: 'src', }; const resultFiles = [ ...workspaceFiles, '/src/foo/README.md', '/src/foo/foo.module.ts', '/src/foo/foo.service.ts', ]; const tree = runner.runSchematic('nest-add', options, appTree); expect(tree.files).toEqual(resultFiles); }); });