diff --git a/src/testRunner/unittests/tsbuild/amdModulesWithOut.ts b/src/testRunner/unittests/tsbuild/amdModulesWithOut.ts index 28f80bd44cb..70f3fe187c8 100644 --- a/src/testRunner/unittests/tsbuild/amdModulesWithOut.ts +++ b/src/testRunner/unittests/tsbuild/amdModulesWithOut.ts @@ -198,6 +198,51 @@ ${internal} export enum internalEnum { a, b, c }`); modifyAgainFs: fs => replaceText(fs, sources[project.lib][source.ts][1], `export const`, `/*@internal*/ export const`), }); }); + + describe("when the module resolution finds original source file", () => { + function modifyFs(fs: vfs.FileSystem) { + // Make lib to output to parent dir + replaceText(fs, sources[project.lib][source.config], `"outFile": "module.js"`, `"outFile": "../module.js", "rootDir": "../"`); + // Change reference to file1 module to resolve to lib/file1 + replaceText(fs, sources[project.app][source.ts][0], "file1", "lib/file1"); + } + + const libOutputFile: OutputFile = [ + "/src/lib/module.js", + "/src/lib/module.js.map", + "/src/lib/module.d.ts", + "/src/lib/module.d.ts.map", + "/src/lib/module.tsbuildinfo" + ]; + verifyTsbuildOutput({ + scenario: "when the module resolution finds original source file", + projFs: () => outFileFs, + time, + tick, + proj: "amdModulesWithOut", + rootNames: ["/src/app"], + expectedMapFileNames: [ + libOutputFile[ext.jsmap], + libOutputFile[ext.dtsmap], + outputFiles[project.app][ext.jsmap], + outputFiles[project.app][ext.dtsmap], + ], + expectedBuildInfoFilesForSectionBaselines: [ + [libOutputFile[ext.buildinfo], libOutputFile[ext.js], libOutputFile[ext.dts]], + [outputFiles[project.app][ext.buildinfo], outputFiles[project.app][ext.js], outputFiles[project.app][ext.dts]] + ], + lastProjectOutputJs: outputFiles[project.app][ext.js], + initialBuild: { + modifyFs + }, + outputFiles: [ + ...libOutputFile, + ...outputFiles[project.app] + ], + baselineOnly: true, + verifyDiagnostics: true + }); + }); }); }); } diff --git a/src/testRunner/unittests/tsbuild/helpers.ts b/src/testRunner/unittests/tsbuild/helpers.ts index 9672da1ff79..6915dd5d3b7 100644 --- a/src/testRunner/unittests/tsbuild/helpers.ts +++ b/src/testRunner/unittests/tsbuild/helpers.ts @@ -234,10 +234,11 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt incrementalDtsUnchangedBuild?: BuildState; incrementalHeaderChangedBuild?: BuildState; baselineOnly?: true; + verifyDiagnostics?: true; } export function verifyTsbuildOutput({ - scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, + scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, verifyDiagnostics, expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, lastProjectOutputJs, initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild }: VerifyTsBuildInput) { @@ -264,7 +265,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt host = undefined!; }); describe("initialBuild", () => { - if (!baselineOnly) { + if (!baselineOnly || verifyDiagnostics) { it(`verify diagnostics`, () => { host.assertDiagnosticMessages(...(initialBuild.expectedDiagnostics || emptyArray)); });