Skip to content

Commit cc53fda

Browse files
chargomeclaude
andcommitted
test(remix): Cross-check source map debug IDs instead of file names
Uploaded artifacts are named after the debug ID (`~/<debugId>-<n>.js`), not after the chunk they came from, so the file name sets never lined up and no chunk was ever cross-checked. Asserting on the IDs also makes the check stricter: every debug ID that ships must have been uploaded. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
1 parent 698255f commit cc53fda

1 file changed

Lines changed: 8 additions & 17 deletions

File tree

‎dev-packages/e2e-tests/test-applications/remix-sourcemaps/assert-build.ts‎

Lines changed: 8 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -73,34 +73,25 @@ const debugIdPairs = getDebugIdPairs(bundles);
7373
const uploadedDebugIds = new Set(debugIdPairs.map(pair => pair.debugId.toLowerCase()));
7474
assert.ok(uploadedDebugIds.size > 0, 'Expected at least one uploaded JS/source map pair with a debug ID');
7575

76-
// Vite emits some assets without a source map, so they can never be part of an uploaded pair. Key
77-
// off the uploaded JS file names instead of the maps on disk, which are deleted after upload.
78-
const uploadedJsFiles = new Set(debugIdPairs.map(pair => path.basename(pair.jsUrl)));
76+
// The uploaded artifacts are named after the debug ID (`~/<debugId>-<n>.js`), not after the chunk
77+
// they came from, so the two file name sets never line up. Cross-check the IDs themselves: every
78+
// debug ID that shipped has to have an artifact bundle behind it.
7979
let crossCheckedChunks = 0;
8080

81-
for (const chunk of chunks) {
82-
if (!uploadedJsFiles.has(path.basename(chunk))) {
83-
continue;
84-
}
85-
86-
const injectedDebugId = injectedDebugIds.get(chunk);
87-
assert.ok(
88-
injectedDebugId,
89-
`Expected exactly one debug ID in ${chunk}, found none, even though its source map was uploaded.`,
90-
);
91-
81+
for (const [chunk, injectedDebugId] of injectedDebugIds) {
9282
assert.ok(
9383
uploadedDebugIds.has(injectedDebugId.toLowerCase()),
94-
`Debug ID ${injectedDebugId} in ${chunk} was never uploaded.`,
84+
`Debug ID ${injectedDebugId} in ${chunk} was never uploaded.\n` +
85+
`Uploaded debug IDs: ${JSON.stringify([...uploadedDebugIds])}`,
9586
);
9687
crossCheckedChunks++;
9788
}
9889

9990
assert.ok(
10091
crossCheckedChunks > 0,
101-
'Expected at least one uploaded chunk to cross-check debug IDs against.\n' +
92+
'Expected at least one chunk carrying a debug ID to cross-check against the upload.\n' +
10293
`Client chunks: ${JSON.stringify(chunks.map(chunk => path.basename(chunk)))}\n` +
103-
`Uploaded JS names: ${JSON.stringify([...uploadedJsFiles])}\n` +
94+
`Uploaded debug IDs: ${JSON.stringify([...uploadedDebugIds])}\n` +
10495
`Uploaded JS urls: ${JSON.stringify(debugIdPairs.map(pair => pair.jsUrl))}`,
10596
);
10697
console.log(`${crossCheckedChunks} chunk(s) ship a debug ID that was uploaded\n`);

0 commit comments

Comments
 (0)