• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1namespace ts {
2    describe("unittests:: tsbuild:: inferredTypeFromTransitiveModule::", () => {
3        let projFs: vfs.FileSystem;
4        before(() => {
5            projFs = loadProjectFromDisk("tests/projects/inferredTypeFromTransitiveModule");
6        });
7        after(() => {
8            projFs = undefined!;
9        });
10
11        verifyTscSerializedIncrementalEdits({
12            scenario: "inferredTypeFromTransitiveModule",
13            subScenario: "inferred type from transitive module",
14            fs: () => projFs,
15            commandLineArgs: ["--b", "/src", "--verbose"],
16            incrementalScenarios: [{
17                buildKind: BuildKind.IncrementalDtsChange,
18                modifyFs: changeBarParam,
19            }],
20        });
21
22        verifyTscSerializedIncrementalEdits({
23            subScenario: "inferred type from transitive module with isolatedModules",
24            fs: () => projFs,
25            scenario: "inferredTypeFromTransitiveModule",
26            commandLineArgs: ["--b", "/src", "--verbose"],
27            modifyFs: changeToIsolatedModules,
28            incrementalScenarios: [{
29                buildKind: BuildKind.IncrementalDtsChange,
30                modifyFs: changeBarParam
31            }]
32        });
33
34        verifyTscSerializedIncrementalEdits({
35            scenario: "inferredTypeFromTransitiveModule",
36            subScenario: "reports errors in files affected by change in signature with isolatedModules",
37            fs: () => projFs,
38            commandLineArgs: ["--b", "/src", "--verbose"],
39            modifyFs: fs => {
40                changeToIsolatedModules(fs);
41                appendText(fs, "/src/lazyIndex.ts", `
42import { default as bar } from './bar';
43bar("hello");`);
44            },
45            incrementalScenarios: [
46                {
47                    buildKind: BuildKind.IncrementalDtsChange,
48                    modifyFs: changeBarParam
49                },
50                {
51                    subScenario: "Fix Error",
52                    buildKind: BuildKind.IncrementalDtsChange,
53                    modifyFs: fs => replaceText(fs, "/src/lazyIndex.ts", `bar("hello")`, "bar()")
54                },
55            ]
56        });
57    });
58
59    function changeToIsolatedModules(fs: vfs.FileSystem) {
60        replaceText(fs, "/src/tsconfig.json", `"incremental": true`, `"incremental": true, "isolatedModules": true`);
61    }
62
63    function changeBarParam(fs: vfs.FileSystem) {
64        replaceText(fs, "/src/bar.ts", "param: string", "");
65    }
66}
67