Skip to content

Commit b559e81

Browse files
committed
Add test when module resolution resolves to original file of referenced project with --out
Test for microsoft#30591
1 parent 3fdd66b commit b559e81

File tree

2 files changed

+48
-2
lines changed

2 files changed

+48
-2
lines changed

src/testRunner/unittests/tsbuild/amdModulesWithOut.ts

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -198,6 +198,51 @@ ${internal} export enum internalEnum { a, b, c }`);
198198
modifyAgainFs: fs => replaceText(fs, sources[project.lib][source.ts][1], `export const`, `/*@internal*/ export const`),
199199
});
200200
});
201+
202+
describe("when the module resolution finds original source file", () => {
203+
function modifyFs(fs: vfs.FileSystem) {
204+
// Make lib to output to parent dir
205+
replaceText(fs, sources[project.lib][source.config], `"outFile": "module.js"`, `"outFile": "../module.js", "rootDir": "../"`);
206+
// Change reference to file1 module to resolve to lib/file1
207+
replaceText(fs, sources[project.app][source.ts][0], "file1", "lib/file1");
208+
}
209+
210+
const libOutputFile: OutputFile = [
211+
"/src/lib/module.js",
212+
"/src/lib/module.js.map",
213+
"/src/lib/module.d.ts",
214+
"/src/lib/module.d.ts.map",
215+
"/src/lib/module.tsbuildinfo"
216+
];
217+
verifyTsbuildOutput({
218+
scenario: "when the module resolution finds original source file",
219+
projFs: () => outFileFs,
220+
time,
221+
tick,
222+
proj: "amdModulesWithOut",
223+
rootNames: ["/src/app"],
224+
expectedMapFileNames: [
225+
libOutputFile[ext.jsmap],
226+
libOutputFile[ext.dtsmap],
227+
outputFiles[project.app][ext.jsmap],
228+
outputFiles[project.app][ext.dtsmap],
229+
],
230+
expectedBuildInfoFilesForSectionBaselines: [
231+
[libOutputFile[ext.buildinfo], libOutputFile[ext.js], libOutputFile[ext.dts]],
232+
[outputFiles[project.app][ext.buildinfo], outputFiles[project.app][ext.js], outputFiles[project.app][ext.dts]]
233+
],
234+
lastProjectOutputJs: outputFiles[project.app][ext.js],
235+
initialBuild: {
236+
modifyFs
237+
},
238+
outputFiles: [
239+
...libOutputFile,
240+
...outputFiles[project.app]
241+
],
242+
baselineOnly: true,
243+
verifyDiagnostics: true
244+
});
245+
});
201246
});
202247
});
203248
}

src/testRunner/unittests/tsbuild/helpers.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,11 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
234234
incrementalDtsUnchangedBuild?: BuildState;
235235
incrementalHeaderChangedBuild?: BuildState;
236236
baselineOnly?: true;
237+
verifyDiagnostics?: true;
237238
}
238239

239240
export function verifyTsbuildOutput({
240-
scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly,
241+
scenario, projFs, time, tick, proj, rootNames, outputFiles, baselineOnly, verifyDiagnostics,
241242
expectedMapFileNames, expectedBuildInfoFilesForSectionBaselines, lastProjectOutputJs,
242243
initialBuild, incrementalDtsChangedBuild, incrementalDtsUnchangedBuild, incrementalHeaderChangedBuild
243244
}: VerifyTsBuildInput) {
@@ -264,7 +265,7 @@ Mismatch Actual(path, actual, expected): ${JSON.stringify(arrayFrom(mapDefinedIt
264265
host = undefined!;
265266
});
266267
describe("initialBuild", () => {
267-
if (!baselineOnly) {
268+
if (!baselineOnly || verifyDiagnostics) {
268269
it(`verify diagnostics`, () => {
269270
host.assertDiagnosticMessages(...(initialBuild.expectedDiagnostics || emptyArray));
270271
});

0 commit comments

Comments
 (0)