diff --git a/src/testRunner/unittests/tsbuild.ts b/src/testRunner/unittests/tsbuild.ts index 2ae034ff673..bd40c7297d9 100644 --- a/src/testRunner/unittests/tsbuild.ts +++ b/src/testRunner/unittests/tsbuild.ts @@ -259,6 +259,23 @@ namespace ts { }); }); }); + + describe("tsbuild - downstream prepend projects always get rebuilt", () => { + const fs = outFileFs.shadow(); + const host = new fakes.CompilerHost(fs); + const builder = createSolutionBuilder(host, buildHost, ["/src/third"], { dry: false, force: false, verbose: false }); + clearDiagnostics(); + builder.buildAllProjects(); + assertDiagnosticMessages(/*none*/); + assert.equal(fs.statSync("src/third/thirdjs/output/third-output.js").mtimeMs, time(), "First build timestamp is correct"); + tick(); + replaceText(fs, "src/first/first_PART1.ts", "Hello", "Hola"); + tick(); + builder.resetBuildContext(); + builder.buildAllProjects(); + assertDiagnosticMessages(/*none*/); + assert.equal(fs.statSync("src/third/thirdjs/output/third-output.js").mtimeMs, time(), "Second build timestamp is correct"); + }); } describe("tsbuild - graph-ordering", () => { diff --git a/tests/projects/outfile-concat/first/tsconfig.json b/tests/projects/outfile-concat/first/tsconfig.json index 8370f6512b8..f71a8182585 100644 --- a/tests/projects/outfile-concat/first/tsconfig.json +++ b/tests/projects/outfile-concat/first/tsconfig.json @@ -9,6 +9,11 @@ "declaration": true, "outFile": "./bin/first-output.js" }, + "files": [ + "first_PART1.ts", + "first_part2.ts", + "first_part3.ts" + ], "references": [ ] } diff --git a/tests/projects/outfile-concat/third/tsconfig.json b/tests/projects/outfile-concat/third/tsconfig.json index 18c98608db1..fef85ce8927 100644 --- a/tests/projects/outfile-concat/third/tsconfig.json +++ b/tests/projects/outfile-concat/third/tsconfig.json @@ -9,6 +9,9 @@ "declaration": true, "outFile": "./thirdjs/output/third-output.js" }, + "files": [ + "third_part1.ts" + ], "references": [ { "path": "../first", "prepend": true }, { "path": "../second", "prepend": true },