@nestjsplus/lib-starter
Version:
Boilerplate for building installable NestJS libraries
80 lines (79 loc) • 3.19 kB
JavaScript
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);
});
});
;