From 6e7c5e88f6cf02e822b82a4f3859bc67b66268a1 Mon Sep 17 00:00:00 2001 From: Noel Mace Date: Wed, 24 Oct 2018 22:45:08 +0200 Subject: [PATCH 1/3] fix(@schematics/angular): --minimal should prevent generating e2e Don't run the e2e schematic when using application or ng-new schematics with option.minimal set to true. fix #12739 --- packages/schematics/angular/application/index.ts | 2 +- packages/schematics/angular/ng-new/index.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/schematics/angular/application/index.ts b/packages/schematics/angular/application/index.ts index 3de361632581..5d298a4d8272 100644 --- a/packages/schematics/angular/application/index.ts +++ b/packages/schematics/angular/application/index.ts @@ -372,7 +372,7 @@ export default function (options: ApplicationOptions): Rule { }), move(sourceDir), ]), MergeStrategy.Overwrite), - schematic('e2e', e2eOptions), + !options.minimal ? schematic('e2e', e2eOptions) : noop(), options.skipPackageJson ? noop() : addDependenciesToPackageJson(options), ]); }; diff --git a/packages/schematics/angular/ng-new/index.ts b/packages/schematics/angular/ng-new/index.ts index e71a83e5a917..9e7d926ee47e 100644 --- a/packages/schematics/angular/ng-new/index.ts +++ b/packages/schematics/angular/ng-new/index.ts @@ -57,6 +57,7 @@ export default function (options: NgNewOptions): Rule { skipPackageJson: false, // always 'skipInstall' here, so that we do it after the move skipInstall: true, + minimal: options.minimal, }; return chain([ From 495cf9b4ebba93194e8b4df747dc24ebbcc7e18c Mon Sep 17 00:00:00 2001 From: Noel Mace Date: Thu, 25 Oct 2018 19:52:00 +0200 Subject: [PATCH 2/3] style: inverse logic according to feedback --- packages/schematics/angular/application/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/schematics/angular/application/index.ts b/packages/schematics/angular/application/index.ts index 5d298a4d8272..24fd2dab1bf4 100644 --- a/packages/schematics/angular/application/index.ts +++ b/packages/schematics/angular/application/index.ts @@ -372,7 +372,7 @@ export default function (options: ApplicationOptions): Rule { }), move(sourceDir), ]), MergeStrategy.Overwrite), - !options.minimal ? schematic('e2e', e2eOptions) : noop(), + options.minimal ? noop() : schematic('e2e', e2eOptions), options.skipPackageJson ? noop() : addDependenciesToPackageJson(options), ]); }; From 62a84907e96e189abc2b359d7200a9ee64212841 Mon Sep 17 00:00:00 2001 From: Noel Mace Date: Thu, 25 Oct 2018 20:37:30 +0200 Subject: [PATCH 3/3] test(@schematics/angular): app and ng-new --minimal shouldn't generate e2e --- packages/schematics/angular/application/index_spec.ts | 10 ++++++++++ packages/schematics/angular/ng-new/index_spec.ts | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/packages/schematics/angular/application/index_spec.ts b/packages/schematics/angular/application/index_spec.ts index 5fd2be343ee4..931d9049ab43 100644 --- a/packages/schematics/angular/application/index_spec.ts +++ b/packages/schematics/angular/application/index_spec.ts @@ -136,6 +136,16 @@ describe('Application Schematic', () => { expect(content.rules['component-selector'][2]).toMatch('app'); }); + it('minimal=true should not create e2e project', () => { + const options = { ...defaultOptions, minimal: true }; + + const tree = schematicRunner.runSchematic('application', options, workspaceTree); + const files = tree.files; + expect(files.indexOf('/projects/foo-e2e')).toEqual(-1); + const confContent = JSON.parse(tree.readContent('/angular.json')); + expect(confContent.projects['foo-e2e']).toBeUndefined(); + }); + describe(`update package.json`, () => { it(`should add build-angular to devDependencies`, () => { const tree = schematicRunner.runSchematic('application', defaultOptions, workspaceTree); diff --git a/packages/schematics/angular/ng-new/index_spec.ts b/packages/schematics/angular/ng-new/index_spec.ts index 8903428d9bab..efbf6daf6931 100644 --- a/packages/schematics/angular/ng-new/index_spec.ts +++ b/packages/schematics/angular/ng-new/index_spec.ts @@ -65,4 +65,14 @@ describe('Ng New Schematic', () => { expect(files.indexOf('/bar/angular.json')).toBeGreaterThanOrEqual(0); expect(files.indexOf('/bar/src')).toBe(-1); }); + + it('minimal=true should not create e2e project', () => { + const options = { ...defaultOptions, minimal: true }; + + const tree = schematicRunner.runSchematic('ng-new', options); + const files = tree.files; + expect(files.indexOf('/bar/e2e')).toEqual(-1); + const confContent = JSON.parse(tree.readContent('/bar/angular.json')); + expect(confContent.projects['foo-e2e']).toBeUndefined(); + }); });