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
+
+