1namespace ts { 2 describe("unittests:: tsc:: composite::", () => { 3 verifyTsc({ 4 scenario: "composite", 5 subScenario: "when setting composite false on command line", 6 fs: () => loadProjectFromFiles({ 7 "/src/project/src/main.ts": "export const x = 10;", 8 "/src/project/tsconfig.json": Utils.dedent` 9 { 10 "compilerOptions": { 11 "target": "es5", 12 "module": "commonjs", 13 "composite": true, 14 }, 15 "include": [ 16 "src/**/*.ts" 17 ] 18 }`, 19 }), 20 commandLineArgs: ["--composite", "false", "--p", "src/project"], 21 }); 22 23 verifyTsc({ 24 scenario: "composite", 25 subScenario: "when setting composite null on command line", 26 fs: () => loadProjectFromFiles({ 27 "/src/project/src/main.ts": "export const x = 10;", 28 "/src/project/tsconfig.json": Utils.dedent` 29 { 30 "compilerOptions": { 31 "target": "es5", 32 "module": "commonjs", 33 "composite": true, 34 }, 35 "include": [ 36 "src/**/*.ts" 37 ] 38 }`, 39 }), 40 commandLineArgs: ["--composite", "null", "--p", "src/project"], 41 }); 42 43 verifyTsc({ 44 scenario: "composite", 45 subScenario: "when setting composite false on command line but has tsbuild info in config", 46 fs: () => loadProjectFromFiles({ 47 "/src/project/src/main.ts": "export const x = 10;", 48 "/src/project/tsconfig.json": Utils.dedent` 49 { 50 "compilerOptions": { 51 "target": "es5", 52 "module": "commonjs", 53 "composite": true, 54 "tsBuildInfoFile": "tsconfig.json.tsbuildinfo" 55 }, 56 "include": [ 57 "src/**/*.ts" 58 ] 59 }`, 60 }), 61 commandLineArgs: ["--composite", "false", "--p", "src/project"], 62 }); 63 64 verifyTsc({ 65 scenario: "composite", 66 subScenario: "when setting composite false and tsbuildinfo as null on command line but has tsbuild info in config", 67 fs: () => loadProjectFromFiles({ 68 "/src/project/src/main.ts": "export const x = 10;", 69 "/src/project/tsconfig.json": Utils.dedent` 70 { 71 "compilerOptions": { 72 "target": "es5", 73 "module": "commonjs", 74 "composite": true, 75 "tsBuildInfoFile": "tsconfig.json.tsbuildinfo" 76 }, 77 "include": [ 78 "src/**/*.ts" 79 ] 80 }`, 81 }), 82 commandLineArgs: ["--composite", "false", "--p", "src/project", "--tsBuildInfoFile", "null"], 83 }); 84 85 verifyTscWithEdits({ 86 scenario: "composite", 87 subScenario: "converting to modules", 88 fs: () => loadProjectFromFiles({ 89 "/src/project/src/main.ts": "const x = 10;", 90 "/src/project/tsconfig.json": JSON.stringify({ 91 compilerOptions: { 92 module: "none", 93 composite: true, 94 }, 95 }), 96 }), 97 commandLineArgs: ["-p", "/src/project"], 98 edits: [ 99 { 100 subScenario: "convert to modules", 101 modifyFs: fs => replaceText(fs, "/src/project/tsconfig.json", "none", "es2015"), 102 } 103 ] 104 }); 105 }); 106} 107