• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts {
2    describe("unittests:: tsbuild:: configFileErrors:: when tsconfig extends the missing file", () => {
3        verifyTsc({
4            scenario: "configFileErrors",
5            subScenario: "when tsconfig extends the missing file",
6            fs: () => loadProjectFromDisk("tests/projects/missingExtendedConfig"),
7            commandLineArgs: ["--b", "/src/tsconfig.json"],
8        });
9    });
10
11    describe("unittests:: tsbuild:: configFileErrors:: reports syntax errors in config file", () => {
12        verifyTscIncrementalEdits({
13            scenario: "configFileErrors",
14            subScenario: "reports syntax errors in config file",
15            fs: () => loadProjectFromFiles({
16                "/src/a.ts": "export function foo() { }",
17                "/src/b.ts": "export function bar() { }",
18                "/src/tsconfig.json": Utils.dedent`
19{
20    "compilerOptions": {
21        "composite": true,
22    },
23    "files": [
24        "a.ts"
25        "b.ts"
26    ]
27}`
28            }),
29            commandLineArgs: ["--b", "/src/tsconfig.json"],
30            incrementalScenarios: [
31                {
32                    buildKind: BuildKind.IncrementalDtsUnchanged,
33                    modifyFs: fs => replaceText(fs, "/src/tsconfig.json", ",", `,
34        "declaration": true,`),
35                    subScenario: "reports syntax errors after change to config file"
36                },
37                {
38                    buildKind: BuildKind.IncrementalDtsUnchanged,
39                    modifyFs: fs => appendText(fs, "/src/a.ts", "export function fooBar() { }"),
40                    subScenario: "reports syntax errors after change to ts file"
41                },
42                noChangeRun,
43                {
44                    buildKind: BuildKind.IncrementalDtsChange,
45                    modifyFs: fs => fs.writeFileSync(
46                        "/src/tsconfig.json",
47                        JSON.stringify({
48                            compilerOptions: { composite: true, declaration: true },
49                            files: ["a.ts", "b.ts"]
50                        })
51                    ),
52                    subScenario: "builds after fixing config file errors"
53                },
54            ]
55        });
56    });
57}
58