diff --git a/packages/@angular/cli/tasks/schematic-run.ts b/packages/@angular/cli/tasks/schematic-run.ts index 9759ef427b..f9c67bb065 100644 --- a/packages/@angular/cli/tasks/schematic-run.ts +++ b/packages/@angular/cli/tasks/schematic-run.ts @@ -17,6 +17,7 @@ import { concat, concatMap, ignoreElements, map } from 'rxjs/operators'; import { getCollection, getSchematic, getEngineHost, getEngine } from '../utilities/schematics'; const { green, red, yellow } = chalk; +const SilentError = require('silent-error'); const Task = require('../ember-cli/lib/models/task'); export interface SchematicRunOptions { @@ -135,9 +136,11 @@ export default Task.extend({ if (!error) { // Output the logging queue. loggingQueue.forEach(log => ui.writeLine(` ${log.color(log.keyword)} ${log.message}`)); + } else { + throw new SilentError(); } - if (opts.dryRun || error) { + if (opts.dryRun) { return observableOf(tree); } return fsSink.commit(tree).pipe( diff --git a/tests/e2e/tests/generate/component/component-duplicate.ts b/tests/e2e/tests/generate/component/component-duplicate.ts index 9099d487b0..03f2837c47 100644 --- a/tests/e2e/tests/generate/component/component-duplicate.ts +++ b/tests/e2e/tests/generate/component/component-duplicate.ts @@ -1,4 +1,5 @@ import { ng } from '../../../utils/process'; +import { expectToFail } from "../../../utils/utils"; import { oneLine } from 'common-tags'; export default function () { @@ -11,13 +12,5 @@ export default function () { in ${output.stdout}.`); } }) - .then(() => ng('generate', 'component', 'test-component')) - .then((output) => { - if (!output.stdout.match(/error! src[\\|\/]app[\\|\/]test-component[\\|\/]test-component.component.ts already exists./)) { - throw new Error(oneLine` - Expected to match - "ERROR! src/app/test-component/test-component.ts" - in ${output.stdout}.`); - } - }); + .then(() => expectToFail(() => ng('generate', 'component', 'test-component'))); }