• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts.tscWatch {
2    describe("unittests:: tsbuildWatch:: watchMode:: with noEmitOnError", () => {
3        function change(caption: string, content: string): TscWatchCompileChange {
4            return {
5                caption,
6                change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, content),
7                // build project
8                timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout,
9            };
10        }
11
12        const noChange: TscWatchCompileChange = {
13            caption: "No change",
14            change: sys => sys.writeFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`, sys.readFile(`${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError/src/main.ts`)!),
15            // build project
16            timeouts: checkSingleTimeoutQueueLengthAndRunAndVerifyNoTimeout,
17        };
18        verifyTscWatch({
19            scenario: "noEmitOnError",
20            subScenario: "does not emit any files on error",
21            commandLineArgs: ["-b", "-w", "-verbose"],
22            sys: () => createWatchedSystem(
23                [
24                    ...["tsconfig.json", "shared/types/db.ts", "src/main.ts", "src/other.ts"]
25                        .map(f => TestFSWithWatch.getTsBuildProjectFile("noEmitOnError", f)),
26                    { path: libFile.path, content: libContent }
27                ],
28                { currentDirectory: `${TestFSWithWatch.tsbuildProjectsLocation}/noEmitOnError` }
29            ),
30            changes: [
31                noChange,
32                change("Fix Syntax error", `import { A } from "../shared/types/db";
33const a = {
34    lastName: 'sdsd'
35};`),
36                change("Semantic Error", `import { A } from "../shared/types/db";
37const a: string = 10;`),
38                noChange,
39                change("Fix Semantic Error", `import { A } from "../shared/types/db";
40const a: string = "hello";`),
41                noChange,
42            ],
43            baselineIncremental: true
44        });
45    });
46}