diff --git a/docs/generated/api-angular/generators/karma-project.md b/docs/generated/api-angular/generators/karma-project.md index 12923a417947a..76287b9007169 100644 --- a/docs/generated/api-angular/generators/karma-project.md +++ b/docs/generated/api-angular/generators/karma-project.md @@ -42,3 +42,11 @@ Default: `false` Type: `boolean` Skip formatting files. + +### skipPackageJson + +Default: `false` + +Type: `boolean` + +Skip updating package.json. diff --git a/packages/angular/src/generators/karma-project/karma-project.spec.ts b/packages/angular/src/generators/karma-project/karma-project.spec.ts index 3f7999aa3fee4..868bab41a8623 100644 --- a/packages/angular/src/generators/karma-project/karma-project.spec.ts +++ b/packages/angular/src/generators/karma-project/karma-project.spec.ts @@ -41,11 +41,13 @@ describe('karmaProject', () => { }); it('should generate files', async () => { + expect(tree.exists('karma.conf.js')).toBeFalsy(); await karmaProjectGenerator(tree, { project: 'lib1' }); expect(tree.exists('/libs/lib1/karma.conf.js')).toBeTruthy(); expect(tree.exists('/libs/lib1/tsconfig.spec.json')).toBeTruthy(); expect(tree.exists('/libs/lib1/src/test.ts')).toBeTruthy(); + expect(tree.exists('karma.conf.js')).toBeTruthy(); }); it('should create a karma.conf.js', async () => { diff --git a/packages/angular/src/generators/karma-project/karma-project.ts b/packages/angular/src/generators/karma-project/karma-project.ts index dfa9857644503..4c39763a135d0 100644 --- a/packages/angular/src/generators/karma-project/karma-project.ts +++ b/packages/angular/src/generators/karma-project/karma-project.ts @@ -5,11 +5,15 @@ import { generateKarmaProjectFiles } from './lib/generate-karma-project-files'; import { updateTsConfigs } from './lib/update-tsconfig'; import { updateWorkspaceConfig } from './lib/update-workspace-config'; import type { KarmaProjectOptions } from './schema'; +import { karmaGenerator } from '../karma/karma'; export async function karmaProjectGenerator( tree: Tree, options: KarmaProjectOptions ) { + if (!tree.exists('karma.conf.js')) { + karmaGenerator(tree, options); + } checkProjectTestTarget(tree, options.project); generateKarmaProjectFiles(tree, options.project); updateTsConfigs(tree, options.project); diff --git a/packages/angular/src/generators/karma-project/schema.d.ts b/packages/angular/src/generators/karma-project/schema.d.ts index c9a5f5e818f29..07328c45c3085 100644 --- a/packages/angular/src/generators/karma-project/schema.d.ts +++ b/packages/angular/src/generators/karma-project/schema.d.ts @@ -1,4 +1,5 @@ export interface KarmaProjectOptions { project: string; skipFormat?: boolean; + skipPackageJson?: boolean; } diff --git a/packages/angular/src/generators/karma-project/schema.json b/packages/angular/src/generators/karma-project/schema.json index 62400033c30b3..2868b038d13fb 100644 --- a/packages/angular/src/generators/karma-project/schema.json +++ b/packages/angular/src/generators/karma-project/schema.json @@ -16,6 +16,11 @@ "description": "Skip formatting files.", "type": "boolean", "default": false + }, + "skipPackageJson": { + "description": "Skip updating package.json.", + "type": "boolean", + "default": false } }, "additionalProperties": false,