Skip to content

Commit 004549a

Browse files
committed
try with num ordering
1 parent 937cc24 commit 004549a

File tree

2 files changed

+22
-7
lines changed

2 files changed

+22
-7
lines changed

packages/integration-tests/suites/replay/sessionMaxAge/test.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,9 @@ for (let i = 0; i < 100; i++) {
2525
sentryTest.skip();
2626
}
2727

28-
const reqPromise0 = waitForReplayRequest(page, 0);
29-
const reqPromise1 = waitForReplayRequest(page, 1);
28+
const reqPromise0 = waitForReplayRequest(page, { requestNum: 0 });
29+
const reqPromise1 = waitForReplayRequest(page, { requestNum: 1 });
30+
const reqPromise2 = waitForReplayRequest(page, { requestNum: 2 });
3031

3132
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
3233
return route.fulfill({
@@ -55,9 +56,6 @@ for (let i = 0; i < 100; i++) {
5556
const stringifiedSnapshot = normalize(fullSnapshots0[0]);
5657
expect(stringifiedSnapshot).toMatchSnapshot('snapshot-0.json');
5758

58-
// We wait for another segment 0
59-
const reqPromise2 = waitForReplayRequest(page, 0);
60-
6159
// Wait for an incremental snapshot
6260
// Wait half of the session max age (after initial flush), but account for potentially slow runners
6361
const timePassed1 = Date.now() - startTimestamp;

packages/integration-tests/utils/replayHelpers.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,16 @@ type SnapshotNode = {
3737
* @param segmentId the segment_id of the replay event
3838
* @returns
3939
*/
40-
export function waitForReplayRequest(page: Page, segmentId?: number): Promise<Response> {
41-
return page.waitForResponse(res => {
40+
export async function waitForReplayRequest(
41+
page: Page,
42+
segmentIdOrOptions?: number | { segmentId?: number; requestNum?: number },
43+
): Promise<Response> {
44+
let replayRequestCounter = 0;
45+
46+
const segmentId = typeof segmentIdOrOptions === 'number' ? segmentIdOrOptions : segmentIdOrOptions?.segmentId;
47+
const requestNum = typeof segmentIdOrOptions === 'number' ? undefined : segmentIdOrOptions?.requestNum;
48+
49+
const response = await page.waitForResponse(res => {
4250
const req = res.request();
4351

4452
const postData = req.postData();
@@ -53,6 +61,13 @@ export function waitForReplayRequest(page: Page, segmentId?: number): Promise<Re
5361
return false;
5462
}
5563

64+
const currentRequestNum = replayRequestCounter;
65+
replayRequestCounter++;
66+
67+
if (requestNum !== undefined) {
68+
return currentRequestNum === requestNum;
69+
}
70+
5671
if (segmentId !== undefined) {
5772
return event.segment_id === segmentId;
5873
}
@@ -62,6 +77,8 @@ export function waitForReplayRequest(page: Page, segmentId?: number): Promise<Re
6277
return false;
6378
}
6479
});
80+
81+
return response;
6582
}
6683

6784
export function isReplayEvent(event: Event): event is ReplayEvent {

0 commit comments

Comments
 (0)