From 730a52bf824f139f4b9eac08b19258d487505a4e Mon Sep 17 00:00:00 2001 From: Eli Barzilay Date: Mon, 14 Oct 2019 18:12:40 -0400 Subject: [PATCH] Better format for the exit code test --- src/testRunner/tsconfig.json | 1 + src/testRunner/unittests/tsbuild/demo.ts | 20 ++----------------- .../unittests/tsbuild/exitCodeOnBogusFile.ts | 11 ++++++++++ .../initial-build/test-exit-code.js | 6 ++++++ 4 files changed, 20 insertions(+), 18 deletions(-) create mode 100644 src/testRunner/unittests/tsbuild/exitCodeOnBogusFile.ts create mode 100644 tests/baselines/reference/tsbuild/exitCodeOnBogusFile/initial-build/test-exit-code.js diff --git a/src/testRunner/tsconfig.json b/src/testRunner/tsconfig.json index 27a7712a2b1..79ddfc36a65 100644 --- a/src/testRunner/tsconfig.json +++ b/src/testRunner/tsconfig.json @@ -99,6 +99,7 @@ "unittests/tsbuild/demo.ts", "unittests/tsbuild/emitDeclarationOnly.ts", "unittests/tsbuild/emptyFiles.ts", + "unittests/tsbuild/exitCodeOnBogusFile.ts", "unittests/tsbuild/graphOrdering.ts", "unittests/tsbuild/inferredTypeFromTransitiveModule.ts", "unittests/tsbuild/javascriptProjectEmit.ts", diff --git a/src/testRunner/unittests/tsbuild/demo.ts b/src/testRunner/unittests/tsbuild/demo.ts index 3b1d6d548cf..c6055549485 100644 --- a/src/testRunner/unittests/tsbuild/demo.ts +++ b/src/testRunner/unittests/tsbuild/demo.ts @@ -39,19 +39,17 @@ namespace ts { interface VerifyBuild { modifyDiskLayout: (fs: vfs.FileSystem) => void; - tsconfigs?: readonly string[]; expectedExitStatus: ExitStatus; expectedDiagnostics: (fs: vfs.FileSystem) => fakes.ExpectedDiagnostic[]; expectedOutputs: readonly string[]; notExpectedOutputs: readonly string[]; } - function verifyBuild({ modifyDiskLayout, tsconfigs = ["/src/tsconfig.json"], - expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs }: VerifyBuild) { + function verifyBuild({ modifyDiskLayout, expectedExitStatus, expectedDiagnostics, expectedOutputs, notExpectedOutputs }: VerifyBuild) { const fs = projFs.shadow(); const host = fakes.SolutionBuilderHost.create(fs); modifyDiskLayout(fs); - const builder = createSolutionBuilder(host, tsconfigs, { verbose: true }); + const builder = createSolutionBuilder(host, ["/src/tsconfig.json"], { verbose: true }); const exitStatus = builder.build(); assert.equal(exitStatus, expectedExitStatus); host.assertDiagnosticMessages(...expectedDiagnostics(fs)); @@ -158,19 +156,5 @@ namespace ts { notExpectedOutputs: [...coreOutputs(), ...animalOutputs(), ...zooOutputs()] }); }); - - it("returns an error exit in case of a bogus file", () => { - verifyBuild({ - modifyDiskLayout: noop, - tsconfigs: ["bogus.json"], - expectedExitStatus: ExitStatus.DiagnosticsPresent_OutputsSkipped, - expectedDiagnostics: _ => [ - getExpectedDiagnosticForProjectsInBuild("bogus.json"), - errorDiagnostic([Diagnostics.File_0_not_found, "/bogus.json"]), - ], - expectedOutputs: emptyArray, - notExpectedOutputs: [...coreOutputs(), ...animalOutputs(), ...zooOutputs()] - }); - }); }); } diff --git a/src/testRunner/unittests/tsbuild/exitCodeOnBogusFile.ts b/src/testRunner/unittests/tsbuild/exitCodeOnBogusFile.ts new file mode 100644 index 00000000000..09821d76e5e --- /dev/null +++ b/src/testRunner/unittests/tsbuild/exitCodeOnBogusFile.ts @@ -0,0 +1,11 @@ +namespace ts { + // https://github.com/microsoft/TypeScript/issues/33849 + describe("unittests:: tsbuild:: exitCodeOnBogusFile:: test exit code", () => { + verifyTsc({ + scenario: "exitCodeOnBogusFile", + subScenario: `test exit code`, + fs: () => loadProjectFromFiles({}, symbolLibContent), + commandLineArgs: ["-b", "bogus.json"] + }); + }); +} diff --git a/tests/baselines/reference/tsbuild/exitCodeOnBogusFile/initial-build/test-exit-code.js b/tests/baselines/reference/tsbuild/exitCodeOnBogusFile/initial-build/test-exit-code.js new file mode 100644 index 00000000000..5009763f757 --- /dev/null +++ b/tests/baselines/reference/tsbuild/exitCodeOnBogusFile/initial-build/test-exit-code.js @@ -0,0 +1,6 @@ +//// [/lib/initial-buildOutput.txt] +/lib/tsc -b bogus.json +error TS6053: File '/bogus.json' not found. +exitCode:: 1 + +