diff --git a/src/lib/configuration/configuration.factory.test.ts b/src/lib/configuration/configuration.factory.test.ts index 9700edc4b..8cf7be3cf 100644 --- a/src/lib/configuration/configuration.factory.test.ts +++ b/src/lib/configuration/configuration.factory.test.ts @@ -10,7 +10,22 @@ describe('Configuration Factory', () => { '.', path.join(process.cwd(), 'src/collection.json'), ); - it('should manage a default configuation', async () => { + it('should support missing project name by using the current working directory instead', async () => { + const options: ConfigurationOptions = { + project: undefined, + }; + const tree: UnitTestTree = await runner.runSchematicAsync('configuration', options).toPromise(); + const files: string[] = tree.files; + expect( + files.find(filename => filename === '/nest-cli.json'), + ).not.toBeUndefined(); + expect(JSON.parse(tree.readContent('/nest-cli.json'))).toEqual({ + $schema: 'https://json.schemastore.org/nest-cli', + collection: '@nestjs/schematics', + sourceRoot: 'src', + }); + }); + it('should manage a default configuration', async () => { const options: ConfigurationOptions = { project: 'project', }; diff --git a/src/lib/configuration/configuration.factory.ts b/src/lib/configuration/configuration.factory.ts index d7b1538e3..ee959f1bd 100644 --- a/src/lib/configuration/configuration.factory.ts +++ b/src/lib/configuration/configuration.factory.ts @@ -25,11 +25,12 @@ function transform(options: ConfigurationOptions): ConfigurationOptions { } function generate(options: ConfigurationOptions): Source { + const projectOrPath = options.project ?? '.'; return apply(url(join('./files' as Path, options.language)), [ template({ ...strings, ...options, }), - move(options.project), + move(projectOrPath), ]); } diff --git a/src/lib/configuration/configuration.schema.d.ts b/src/lib/configuration/configuration.schema.d.ts index a8c036eaf..295e8bda8 100644 --- a/src/lib/configuration/configuration.schema.d.ts +++ b/src/lib/configuration/configuration.schema.d.ts @@ -1,8 +1,9 @@ export interface ConfigurationOptions { /** * The project where generate the configuration. + * If not supplied or nil, the file will be created in the current working directory instead. */ - project: string; + project?: string; /** * The language to use in configuration (ts | js). */