@@ -3,9 +3,9 @@ import { expect } from '@playwright/test';
33import { sentryTest } from '../../../../../utils/fixtures' ;
44import { envelopeRequestParser , waitForErrorRequest } from '../../../../../utils/helpers' ;
55import {
6- getCustomRecordingEvents ,
6+ collectReplayRequests ,
7+ getReplayPerformanceSpans ,
78 shouldSkipReplayTest ,
8- waitForReplayRequest ,
99} from '../../../../../utils/replayHelpers' ;
1010
1111sentryTest ( 'captures text request body' , async ( { getLocalTestPath, page, browserName } ) => {
@@ -30,7 +30,9 @@ sentryTest('captures text request body', async ({ getLocalTestPath, page, browse
3030 } ) ;
3131
3232 const requestPromise = waitForErrorRequest ( page ) ;
33- const replayRequestPromise1 = waitForReplayRequest ( page , 0 ) ;
33+ const replayRequestPromise = collectReplayRequests ( page , recordingEvents => {
34+ return getReplayPerformanceSpans ( recordingEvents ) . some ( span => span . op === 'resource.fetch' ) ;
35+ } ) ;
3436
3537 const url = await getLocalTestPath ( { testDir : __dirname } ) ;
3638 await page . goto ( url ) ;
@@ -65,9 +67,8 @@ sentryTest('captures text request body', async ({ getLocalTestPath, page, browse
6567 } ,
6668 } ) ;
6769
68- const replayReq1 = await replayRequestPromise1 ;
69- const { performanceSpans : performanceSpans1 } = getCustomRecordingEvents ( replayReq1 ) ;
70- expect ( performanceSpans1 . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
70+ const { replayRecordingSnapshots } = await replayRequestPromise ;
71+ expect ( getReplayPerformanceSpans ( replayRecordingSnapshots ) . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
7172 {
7273 data : {
7374 method : 'POST' ,
@@ -109,7 +110,9 @@ sentryTest('captures JSON request body', async ({ getLocalTestPath, page, browse
109110 } ) ;
110111
111112 const requestPromise = waitForErrorRequest ( page ) ;
112- const replayRequestPromise1 = waitForReplayRequest ( page , 0 ) ;
113+ const replayRequestPromise = collectReplayRequests ( page , recordingEvents => {
114+ return getReplayPerformanceSpans ( recordingEvents ) . some ( span => span . op === 'resource.fetch' ) ;
115+ } ) ;
113116
114117 const url = await getLocalTestPath ( { testDir : __dirname } ) ;
115118 await page . goto ( url ) ;
@@ -144,9 +147,8 @@ sentryTest('captures JSON request body', async ({ getLocalTestPath, page, browse
144147 } ,
145148 } ) ;
146149
147- const replayReq1 = await replayRequestPromise1 ;
148- const { performanceSpans : performanceSpans1 } = getCustomRecordingEvents ( replayReq1 ) ;
149- expect ( performanceSpans1 . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
150+ const { replayRecordingSnapshots } = await replayRequestPromise ;
151+ expect ( getReplayPerformanceSpans ( replayRecordingSnapshots ) . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
150152 {
151153 data : {
152154 method : 'POST' ,
@@ -188,7 +190,9 @@ sentryTest('captures non-text request body', async ({ getLocalTestPath, page, br
188190 } ) ;
189191
190192 const requestPromise = waitForErrorRequest ( page ) ;
191- const replayRequestPromise1 = waitForReplayRequest ( page , 0 ) ;
193+ const replayRequestPromise = collectReplayRequests ( page , recordingEvents => {
194+ return getReplayPerformanceSpans ( recordingEvents ) . some ( span => span . op === 'resource.fetch' ) ;
195+ } ) ;
192196
193197 const url = await getLocalTestPath ( { testDir : __dirname } ) ;
194198 await page . goto ( url ) ;
@@ -227,9 +231,8 @@ sentryTest('captures non-text request body', async ({ getLocalTestPath, page, br
227231 } ,
228232 } ) ;
229233
230- const replayReq1 = await replayRequestPromise1 ;
231- const { performanceSpans : performanceSpans1 } = getCustomRecordingEvents ( replayReq1 ) ;
232- expect ( performanceSpans1 . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
234+ const { replayRecordingSnapshots } = await replayRequestPromise ;
235+ expect ( getReplayPerformanceSpans ( replayRecordingSnapshots ) . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
233236 {
234237 data : {
235238 method : 'POST' ,
@@ -271,7 +274,9 @@ sentryTest('captures text request body when matching relative URL', async ({ get
271274 } ) ;
272275
273276 const requestPromise = waitForErrorRequest ( page ) ;
274- const replayRequestPromise1 = waitForReplayRequest ( page , 0 ) ;
277+ const replayRequestPromise = collectReplayRequests ( page , recordingEvents => {
278+ return getReplayPerformanceSpans ( recordingEvents ) . some ( span => span . op === 'resource.fetch' ) ;
279+ } ) ;
275280
276281 const url = await getLocalTestUrl ( { testDir : __dirname } ) ;
277282 await page . goto ( url ) ;
@@ -306,9 +311,8 @@ sentryTest('captures text request body when matching relative URL', async ({ get
306311 } ,
307312 } ) ;
308313
309- const replayReq1 = await replayRequestPromise1 ;
310- const { performanceSpans : performanceSpans1 } = getCustomRecordingEvents ( replayReq1 ) ;
311- expect ( performanceSpans1 . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
314+ const { replayRecordingSnapshots } = await replayRequestPromise ;
315+ expect ( getReplayPerformanceSpans ( replayRecordingSnapshots ) . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
312316 {
313317 data : {
314318 method : 'POST' ,
@@ -348,7 +352,9 @@ sentryTest('does not capture request body when URL does not match', async ({ get
348352 } ) ;
349353
350354 const requestPromise = waitForErrorRequest ( page ) ;
351- const replayRequestPromise1 = waitForReplayRequest ( page , 0 ) ;
355+ const replayRequestPromise = collectReplayRequests ( page , recordingEvents => {
356+ return getReplayPerformanceSpans ( recordingEvents ) . some ( span => span . op === 'resource.fetch' ) ;
357+ } ) ;
352358
353359 const url = await getLocalTestPath ( { testDir : __dirname } ) ;
354360 await page . goto ( url ) ;
@@ -383,9 +389,8 @@ sentryTest('does not capture request body when URL does not match', async ({ get
383389 } ,
384390 } ) ;
385391
386- const replayReq1 = await replayRequestPromise1 ;
387- const { performanceSpans : performanceSpans1 } = getCustomRecordingEvents ( replayReq1 ) ;
388- expect ( performanceSpans1 . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
392+ const { replayRecordingSnapshots } = await replayRequestPromise ;
393+ expect ( getReplayPerformanceSpans ( replayRecordingSnapshots ) . filter ( span => span . op === 'resource.fetch' ) ) . toEqual ( [
389394 {
390395 data : {
391396 method : 'POST' ,
0 commit comments