Better format for the exit code test

This commit is contained in:
Eli Barzilay
2019-10-14 18:12:40 -04:00
parent cd34808a14
commit 730a52bf82
4 changed files with 20 additions and 18 deletions

View File

@@ -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",

View File

@@ -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()]
});
});
});
}

View File

@@ -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"]
});
});
}