From a72fe5dd8e82ffdaba971891fef5b6dc7cc35002 Mon Sep 17 00:00:00 2001 From: Ryan Cavanaugh Date: Mon, 18 Jun 2018 16:44:25 -0700 Subject: [PATCH] Add a testcase --- src/testRunner/unittests/tsbuild.ts | 17 +++++++++++++++++ .../projects/outfile-concat/first/tsconfig.json | 5 +++++ .../projects/outfile-concat/third/tsconfig.json | 3 +++ 3 files changed, 25 insertions(+) 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 },