• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts {
2    describe("unittests:: tsbuild - with noEmitOnError", () => {
3        let projFs: vfs.FileSystem;
4        before(() => {
5            projFs = loadProjectFromDisk("tests/projects/noEmitOnError");
6        });
7        after(() => {
8            projFs = undefined!;
9        });
10
11        function verifyNoEmitOnError(subScenario: string, fixModifyFs: TscIncremental["modifyFs"], modifyFs?: TscIncremental["modifyFs"]) {
12            verifyTscSerializedIncrementalEdits({
13                scenario: "noEmitOnError",
14                subScenario,
15                fs: () => projFs,
16                modifyFs,
17                commandLineArgs: ["--b", "/src/tsconfig.json"],
18                incrementalScenarios: [
19                    noChangeRun,
20                    {
21                        subScenario: "Fix error",
22                        buildKind: BuildKind.IncrementalDtsChange,
23                        modifyFs: fixModifyFs,
24                    },
25                    noChangeRun,
26                ],
27                baselinePrograms: true,
28                baselineIncremental: true
29            });
30        }
31
32        verifyNoEmitOnError(
33            "syntax errors",
34            fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
35const a = {
36    lastName: 'sdsd'
37};`, "utf-8")
38        );
39
40        verifyNoEmitOnError(
41            "semantic errors",
42            fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
43const a: string = "hello";`, "utf-8"),
44            fs => fs.writeFileSync("/src/src/main.ts", `import { A } from "../shared/types/db";
45const a: string = 10;`, "utf-8")
46        );
47    });
48}
49