diff --git a/src/testRunner/unittests/tsc/incremental.ts b/src/testRunner/unittests/tsc/incremental.ts index 7e975b89ce6..a8fe334de7c 100644 --- a/src/testRunner/unittests/tsc/incremental.ts +++ b/src/testRunner/unittests/tsc/incremental.ts @@ -400,5 +400,23 @@ declare global { }, ] }); + + + verifyTscSerializedIncrementalEdits({ + scenario: "incremental", + subScenario: "when project has strict true", + commandLineArgs: ["-noEmit", "-p", `src/project`], + fs: () => loadProjectFromFiles({ + "/src/project/tsconfig.json": JSON.stringify({ + compilerOptions: { + incremental: true, + strict: true, + }, + }), + "/src/project/class1.ts": `export class class1 {}`, + }), + incrementalScenarios: noChangeOnlyRuns, + baselinePrograms: true + }); }); } diff --git a/tests/baselines/reference/tsc/incremental/initial-build/when-project-has-strict-true.js b/tests/baselines/reference/tsc/incremental/initial-build/when-project-has-strict-true.js new file mode 100644 index 00000000000..3f7c387ea3d --- /dev/null +++ b/tests/baselines/reference/tsc/incremental/initial-build/when-project-has-strict-true.js @@ -0,0 +1,98 @@ +Input:: +//// [/lib/lib.d.ts] +/// +interface Boolean {} +interface Function {} +interface CallableFunction {} +interface NewableFunction {} +interface IArguments {} +interface Number { toExponential: any; } +interface Object {} +interface RegExp {} +interface String { charAt: any; } +interface Array { length: number; [n: number]: T; } +interface ReadonlyArray {} +declare const console: { log(msg: any): void; }; + +//// [/src/project/class1.ts] +export class class1 {} + +//// [/src/project/tsconfig.json] +{"compilerOptions":{"incremental":true,"strict":true}} + + + +Output:: +/lib/tsc -noEmit -p src/project +exitCode:: ExitStatus.Success +Program root files: ["/src/project/class1.ts"] +Program options: {"incremental":true,"strict":true,"noEmit":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} +Program structureReused: Not +Program files:: +/lib/lib.d.ts +/src/project/class1.ts + +Semantic diagnostics in builder refreshed for:: +/lib/lib.d.ts +/src/project/class1.ts + + +//// [/src/project/tsconfig.tsbuildinfo] +{"program":{"fileNames":["../../lib/lib.d.ts","./class1.ts"],"fileInfos":[{"version":"3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };","affectsGlobalScope":true},"-7660182596-export class class1 {}"],"referencedMap":[],"exportedModulesMap":[],"semanticDiagnosticsPerFile":[1,2],"affectedFilesPendingEmit":[[2,1]]},"version":"FakeTSVersion"} + +//// [/src/project/tsconfig.tsbuildinfo.readable.baseline.txt] +{ + "program": { + "fileNames": [ + "../../lib/lib.d.ts", + "./class1.ts" + ], + "fileInfos": { + "../../lib/lib.d.ts": { + "version": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "signature": "3858781397-/// \ninterface Boolean {}\ninterface Function {}\ninterface CallableFunction {}\ninterface NewableFunction {}\ninterface IArguments {}\ninterface Number { toExponential: any; }\ninterface Object {}\ninterface RegExp {}\ninterface String { charAt: any; }\ninterface Array { length: number; [n: number]: T; }\ninterface ReadonlyArray {}\ndeclare const console: { log(msg: any): void; };", + "affectsGlobalScope": true + }, + "./class1.ts": { + "version": "-7660182596-export class class1 {}", + "signature": "-7660182596-export class class1 {}" + } + }, + "referencedMap": {}, + "exportedModulesMap": {}, + "semanticDiagnosticsPerFile": [ + "../../lib/lib.d.ts", + "./class1.ts" + ], + "affectedFilesPendingEmit": [ + [ + "./class1.ts", + "Full" + ] + ] + }, + "version": "FakeTSVersion", + "size": 731 +} + + + +Change:: no-change-run +Input:: + + +Output:: +/lib/tsc -noEmit -p src/project +exitCode:: ExitStatus.Success +Program root files: ["/src/project/class1.ts"] +Program options: {"incremental":true,"strict":true,"noEmit":true,"project":"/src/project","configFilePath":"/src/project/tsconfig.json"} +Program structureReused: Not +Program files:: +/lib/lib.d.ts +/src/project/class1.ts + +Semantic diagnostics in builder refreshed for:: +/lib/lib.d.ts +/src/project/class1.ts + +