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 + +