Skip to content

Commit ce74034

Browse files
committed
fix(remix): Update defer injection logic.
1 parent c9aaf8b commit ce74034

File tree

8 files changed

+25
-16
lines changed

8 files changed

+25
-16
lines changed

packages/remix/src/utils/instrumentServer.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -259,11 +259,11 @@ function makeWrappedRootLoader(remixVersion: number) {
259259
const traceAndBaggage = getTraceAndBaggage();
260260

261261
if (isDeferredData(res)) {
262-
return {
263-
...res.data,
264-
...traceAndBaggage,
265-
remixVersion,
266-
};
262+
res.data['sentryTrace'] = traceAndBaggage.sentryTrace;
263+
res.data['sentryBaggage'] = traceAndBaggage.sentryBaggage;
264+
res.data['remixVersion'] = remixVersion;
265+
266+
return res;
267267
}
268268

269269
if (isResponse(res)) {
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from '../../../common/routes/loader-defer-response.$id';
2+
export { default } from '../../../common/routes/loader-defer-response.$id';

packages/remix/test/integration/app_v1/routes/loader-defer-response/index.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export * from '../../common/routes/loader-defer-response.$id';
2+
export { default } from '../../common/routes/loader-defer-response.$id';

packages/remix/test/integration/app_v2/routes/loader-defer-response.tsx

Lines changed: 0 additions & 2 deletions
This file was deleted.

packages/remix/test/integration/common/routes/loader-defer-response.tsx renamed to packages/remix/test/integration/common/routes/loader-defer-response.$id.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ export default function LoaderJSONResponse() {
1414

1515
return (
1616
<div>
17-
<h1>{data && data.id ? data.id : 'Not Found'}</h1>
17+
<h1 id="data-render">{data && data.id ? data.id : 'Not Found'}</h1>
1818
</div>
1919
);
2020
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import { test, expect } from '@playwright/test';
2+
3+
test('should receive correct data from instrumented defer response', async ({ page }) => {
4+
await page.goto('/loader-defer-response/98765');
5+
6+
const renderedId = await page.waitForSelector('#data-render');
7+
8+
expect(await renderedId?.textContent()).toBe('98765');
9+
});

packages/remix/test/integration/test/server/loader.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -201,12 +201,12 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada
201201

202202
it('correctly instruments a deferred loader', async () => {
203203
const env = await RemixTestEnv.init(adapter);
204-
const url = `${env.url}/loader-defer-response`;
204+
const url = `${env.url}/loader-defer-response/123123`;
205205
const envelope = await env.getEnvelopeRequest({ url, envelopeType: 'transaction' });
206206
const transaction = envelope[2];
207207

208208
assertSentryTransaction(transaction, {
209-
transaction: useV2 ? 'routes/loader-defer-response' : 'root',
209+
transaction: useV2 ? 'routes/loader-defer-response.$id' : 'routes/loader-defer-response/$id',
210210
transaction_info: {
211211
source: 'route',
212212
},
@@ -217,11 +217,11 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada
217217
op: 'function.remix.loader',
218218
},
219219
{
220-
description: 'routes/loader-defer-response',
220+
description: 'routes/loader-defer-response.$id',
221221
op: 'function.remix.loader',
222222
},
223223
{
224-
description: 'routes/loader-defer-response',
224+
description: 'routes/loader-defer-response.$id',
225225
op: 'function.remix.document_request',
226226
},
227227
]
@@ -231,11 +231,11 @@ describe.each(['builtin', 'express'])('Remix API Loaders with adapter = %s', ada
231231
op: 'function.remix.loader',
232232
},
233233
{
234-
description: 'routes/loader-defer-response/index',
234+
description: 'routes/loader-defer-response/$id',
235235
op: 'function.remix.loader',
236236
},
237237
{
238-
description: 'root',
238+
description: 'routes/loader-defer-response/$id',
239239
op: 'function.remix.document_request',
240240
},
241241
],

0 commit comments

Comments
 (0)