Skip to content

Commit dbef016

Browse files
committed
move to request and response objects
1 parent e9dcce0 commit dbef016

File tree

18 files changed

+112
-35
lines changed

18 files changed

+112
-35
lines changed

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureBodies/test.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,11 +79,17 @@ sentryTest('captures requestBody & responseBody when experiment is configured',
7979
{
8080
data: {
8181
method: 'POST',
82+
statusCode: 200,
8283
requestBodySize: 13,
8384
responseBodySize: 14,
84-
requestBody: '{"foo":"bar"}',
85-
responseBody: '{"res":"this"}',
86-
statusCode: 200,
85+
request: {
86+
size: 13,
87+
body: '{"foo":"bar"}',
88+
},
89+
response: {
90+
size: 14,
91+
body: '{"res":"this"}',
92+
},
8793
},
8894
description: 'http://localhost:7654/foo',
8995
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/captureNonTextBodies/test.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,17 @@ sentryTest(
8484
{
8585
data: {
8686
method: 'POST',
87+
statusCode: 200,
8788
requestBodySize: 16,
8889
responseBodySize: 24,
89-
requestBody: 'name=Anne&age=32',
90-
responseBody: '<html>Hello world</html>',
91-
statusCode: 200,
90+
request: {
91+
size: 16,
92+
body: 'name=Anne&age=32',
93+
},
94+
response: {
95+
size: 24,
96+
body: '<html>Hello world</html>',
97+
},
9298
},
9399
description: 'http://localhost:7654/foo',
94100
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/contentLengthHeader/test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,8 +79,11 @@ sentryTest('parses response_body_size from Content-Length header if available',
7979
{
8080
data: {
8181
method: 'GET',
82-
responseBodySize: 789,
8382
statusCode: 200,
83+
responseBodySize: 789,
84+
response: {
85+
size: 789,
86+
},
8487
},
8588
description: 'http://localhost:7654/foo',
8689
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/noContentLengthHeader/test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,11 @@ sentryTest('does not capture response_body_size without Content-Length header',
7878
{
7979
data: {
8080
method: 'GET',
81-
responseBodySize: 29,
8281
statusCode: 200,
82+
responseBodySize: 29,
83+
response: {
84+
size: 29,
85+
},
8386
},
8487
description: 'http://localhost:7654/foo',
8588
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/nonTextBodySizes/test.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,9 +81,15 @@ sentryTest('calculates body sizes for non-string bodies', async ({ getLocalTestP
8181
{
8282
data: {
8383
method: 'POST',
84+
statusCode: 200,
8485
requestBodySize: 26,
8586
responseBodySize: 24,
86-
statusCode: 200,
87+
request: {
88+
size: 26,
89+
},
90+
response: {
91+
size: 24,
92+
},
8793
},
8894
description: 'http://localhost:7654/foo',
8995
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/fetch/requestBodySize/test.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,11 @@ sentryTest('captures requestBodySize when body is sent', async ({ getLocalTestPa
7777
{
7878
data: {
7979
method: 'POST',
80-
requestBodySize: 13,
8180
statusCode: 200,
81+
requestBodySize: 13,
82+
request: {
83+
size: 13,
84+
},
8285
},
8386
description: 'http://localhost:7654/foo',
8487
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/captureBodies/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,11 @@ sentryTest(
8585
{
8686
data: {
8787
method: 'POST',
88+
statusCode: 200,
8889
requestBodySize: 13,
8990
responseBodySize: 14,
90-
requestBody: '{"foo":"bar"}',
91-
responseBody: '{"res":"this"}',
92-
statusCode: 200,
91+
request: { size: 13, body: '{"foo":"bar"}' },
92+
response: { size: 14, body: '{"res":"this"}' },
9393
},
9494
description: 'http://localhost:7654/foo',
9595
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/captureNonTextBodies/test.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,11 +88,11 @@ sentryTest(
8888
{
8989
data: {
9090
method: 'POST',
91+
statusCode: 200,
9192
requestBodySize: 16,
9293
responseBodySize: 24,
93-
requestBody: 'name=Anne&age=32',
94-
responseBody: '<html>Hello world</html>',
95-
statusCode: 200,
94+
request: { size: 16, body: 'name=Anne&age=32' },
95+
response: { size: 24, body: '<html>Hello world</html>' },
9696
},
9797
description: 'http://localhost:7654/foo',
9898
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/contentLengthHeader/test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ sentryTest(
8686
{
8787
data: {
8888
method: 'GET',
89-
responseBodySize: 789,
9089
statusCode: 200,
90+
responseBodySize: 789,
91+
response: { size: 789 },
9192
},
9293
description: 'http://localhost:7654/foo',
9394
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/noContentLengthHeader/test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,9 @@ sentryTest(
8686
{
8787
data: {
8888
method: 'GET',
89-
responseBodySize: 29,
9089
statusCode: 200,
90+
responseBodySize: 29,
91+
response: { size: 29 },
9192
},
9293
description: 'http://localhost:7654/foo',
9394
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/nonTextBodySizes/test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,11 @@ sentryTest('calculates body sizes for non-string bodies', async ({ getLocalTestP
8484
{
8585
data: {
8686
method: 'POST',
87+
statusCode: 200,
8788
requestBodySize: 26,
8889
responseBodySize: 24,
89-
statusCode: 200,
90+
request: { size: 26 },
91+
response: { size: 24 },
9092
},
9193
description: 'http://localhost:7654/foo',
9294
endTimestamp: expect.any(Number),

packages/browser-integration-tests/suites/replay/extendNetworkBreadcrumbs/xhr/requestBodySize/test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,8 +81,9 @@ sentryTest('captures requestBodySize when body is sent', async ({ getLocalTestPa
8181
{
8282
data: {
8383
method: 'POST',
84-
requestBodySize: 13,
8584
statusCode: 200,
85+
requestBodySize: 13,
86+
request: { size: 13 },
8687
},
8788
description: 'http://localhost:7654/foo',
8889
endTimestamp: expect.any(Number),

packages/browser-integration-tests/utils/replayEventTemplates.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ export const expectedFetchPerformanceSpan = {
140140
statusCode: 200,
141141
responseBodySize: 11,
142142
requestBodySize: 3,
143+
request: { size: 3 },
144+
response: { size: 11 },
143145
},
144146
};
145147

@@ -152,6 +154,7 @@ export const expectedXHRPerformanceSpan = {
152154
method: 'GET',
153155
statusCode: 200,
154156
responseBodySize: 11,
157+
response: { size: 11 },
155158
},
156159
};
157160

packages/replay/src/coreHandlers/util/fetchUtils.ts

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import type { Breadcrumb, FetchBreadcrumbData, TextEncoderInternal } from '@sentry/types';
2-
import { logger } from '@sentry/utils';
2+
import { dropUndefinedKeys, logger } from '@sentry/utils';
33

44
import type { FetchHint, ReplayContainer, ReplayNetworkRequestData } from '../../types';
55
import { addNetworkBreadcrumb } from './addNetworkBreadcrumb';
@@ -92,6 +92,11 @@ async function _prepareFetchData(
9292
requestBody = getBodyString(body);
9393
}
9494

95+
const request =
96+
requestBody || requestBodySize ? dropUndefinedKeys({ body: requestBody, size: requestBodySize }) : undefined;
97+
const response =
98+
responseBody || responseBodySize ? dropUndefinedKeys({ body: responseBody, size: responseBodySize }) : undefined;
99+
95100
return {
96101
startTimestamp,
97102
endTimestamp,
@@ -100,7 +105,7 @@ async function _prepareFetchData(
100105
statusCode: statusCode || 0,
101106
requestBodySize,
102107
responseBodySize,
103-
requestBody,
104-
responseBody,
108+
request,
109+
response,
105110
};
106111
}

packages/replay/src/coreHandlers/util/networkUtils.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,8 @@ export function makeNetworkReplayBreadcrumb(
9696
statusCode,
9797
requestBodySize,
9898
responseBodySize,
99-
requestBody,
100-
responseBody,
99+
request,
100+
response,
101101
} = data;
102102

103103
const result: ReplayPerformanceEntry & { data: object } = {
@@ -110,8 +110,8 @@ export function makeNetworkReplayBreadcrumb(
110110
statusCode,
111111
requestBodySize,
112112
responseBodySize,
113-
requestBody,
114-
responseBody,
113+
request,
114+
response,
115115
}),
116116
};
117117

packages/replay/src/coreHandlers/util/xhrUtils.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ function _prepareXhrData(
7676
return null;
7777
}
7878

79+
const request = requestBody || requestBodySize ? { body: requestBody, size: requestBodySize } : undefined;
80+
const response = responseBody || responseBodySize ? { body: responseBody, size: responseBodySize } : undefined;
81+
7982
return {
8083
startTimestamp,
8184
endTimestamp,
@@ -84,7 +87,7 @@ function _prepareXhrData(
8487
statusCode: statusCode || 0,
8588
requestBodySize,
8689
responseBodySize,
87-
requestBody,
88-
responseBody,
90+
request,
91+
response,
8992
};
9093
}

packages/replay/src/types.ts

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,13 @@ export type ReplayNetworkRequestData = {
373373
requestBodySize?: number;
374374
responseBodySize?: number;
375375

376-
requestBody?: string;
377-
responseBody?: string;
376+
request?: {
377+
size?: number;
378+
body?: string;
379+
};
380+
381+
response?: {
382+
size?: number;
383+
body?: string;
384+
};
378385
};

packages/replay/test/unit/coreHandlers/handleNetworkBreadcrumbs.test.ts

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,6 +117,12 @@ describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => {
117117
requestBodySize: 10,
118118
responseBodySize: 13,
119119
statusCode: 200,
120+
request: {
121+
size: 10,
122+
},
123+
response: {
124+
size: 13,
125+
},
120126
},
121127
description: 'https://example.com',
122128
endTimestamp: (BASE_TIMESTAMP + 2000) / 1000,
@@ -224,6 +230,12 @@ describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => {
224230
method: 'GET',
225231
requestBodySize: 10,
226232
responseBodySize: 13,
233+
request: {
234+
size: 10,
235+
},
236+
response: {
237+
size: 13,
238+
},
227239
statusCode: 200,
228240
},
229241
description: 'https://example.com',
@@ -334,6 +346,9 @@ describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => {
334346
data: {
335347
statusCode: 200,
336348
responseBodySize: 13,
349+
response: {
350+
size: 13,
351+
},
337352
},
338353
description: 'https://example.com',
339354
endTimestamp: (BASE_TIMESTAMP + 2000) / 1000,
@@ -398,8 +413,14 @@ describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => {
398413
requestBodySize: 10,
399414
responseBodySize: 13,
400415
statusCode: 200,
401-
requestBody: 'test input',
402-
responseBody: 'test response',
416+
request: {
417+
size: 10,
418+
body: 'test input',
419+
},
420+
response: {
421+
size: 13,
422+
body: 'test response',
423+
},
403424
},
404425
description: 'https://example.com',
405426
endTimestamp: (BASE_TIMESTAMP + 2000) / 1000,
@@ -522,8 +543,14 @@ describe('Unit | coreHandlers | handleNetworkBreadcrumbs', () => {
522543
requestBodySize: 10,
523544
responseBodySize: 13,
524545
statusCode: 200,
525-
requestBody: 'test input',
526-
responseBody: 'test response',
546+
request: {
547+
size: 10,
548+
body: 'test input',
549+
},
550+
response: {
551+
size: 13,
552+
body: 'test response',
553+
},
527554
},
528555
description: 'https://example.com',
529556
endTimestamp: (BASE_TIMESTAMP + 2000) / 1000,

0 commit comments

Comments
 (0)