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