Skip to content

Commit e146146

Browse files
committed
fix flaky test?
1 parent 1ce4095 commit e146146

File tree

3 files changed

+32
-5
lines changed

3 files changed

+32
-5
lines changed

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

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,26 @@ sentryTest(
2424
sentryTest.skip();
2525
}
2626

27+
// We want to ensure to check the correct event payloads
28+
let firstInputMutationSegmentId: number | undefined = undefined;
2729
const reqPromise0 = waitForReplayRequest(page, 0);
28-
const reqPromise1 = waitForReplayRequest(page, 1);
29-
const reqPromise2 = waitForReplayRequest(page, 2);
30+
const reqPromise1 = waitForReplayRequest(page, (event, res) => {
31+
const check =
32+
firstInputMutationSegmentId === undefined && getIncrementalRecordingSnapshots(res).some(isInputMutation);
33+
34+
if (check) {
35+
firstInputMutationSegmentId = event.segment_id;
36+
}
37+
38+
return check;
39+
});
40+
const reqPromise2 = waitForReplayRequest(page, (event, res) => {
41+
return (
42+
typeof firstInputMutationSegmentId === 'number' &&
43+
firstInputMutationSegmentId < event.segment_id &&
44+
getIncrementalRecordingSnapshots(res).some(isInputMutation)
45+
);
46+
});
3047

3148
await page.route('https://dsn.ingest.sentry.io/**/*', route => {
3249
return route.fulfill({
@@ -39,13 +56,13 @@ sentryTest(
3956
const url = await getLocalTestPath({ testDir: __dirname });
4057

4158
await page.goto(url);
42-
4359
await reqPromise0;
4460

4561
const text = 'test';
4662

4763
await page.locator('#input').fill(text);
4864
await forceFlushReplay();
65+
4966
const snapshots = getIncrementalRecordingSnapshots(await reqPromise1).filter(isInputMutation);
5067
const lastSnapshot = snapshots[snapshots.length - 1];
5168
expect(lastSnapshot.data.text).toBe('*'.repeat(text.length));

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import {
1414
// Session should expire after 2s - keep in sync with init.js
1515
const SESSION_TIMEOUT = 2000;
1616

17-
sentryTest('handles an expired session RUN', async ({ getLocalTestPath, page }) => {
17+
sentryTest('handles an expired session', async ({ getLocalTestPath, page }) => {
1818
if (shouldSkipReplayTest()) {
1919
sentryTest.skip();
2020
}

packages/integration-tests/utils/replayHelpers.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,13 @@ export type RecordingSnapshot = FullRecordingSnapshot | IncrementalRecordingSnap
4646
* @param segmentId the segment_id of the replay event
4747
* @returns
4848
*/
49-
export function waitForReplayRequest(page: Page, segmentId?: number): Promise<Response> {
49+
export function waitForReplayRequest(
50+
page: Page,
51+
segmentIdOrCallback?: number | ((event: ReplayEvent, res: Response) => boolean),
52+
): Promise<Response> {
53+
const segmentId = typeof segmentIdOrCallback === 'number' ? segmentIdOrCallback : undefined;
54+
const callback = typeof segmentIdOrCallback === 'function' ? segmentIdOrCallback : undefined;
55+
5056
return page.waitForResponse(res => {
5157
const req = res.request();
5258

@@ -62,6 +68,10 @@ export function waitForReplayRequest(page: Page, segmentId?: number): Promise<Re
6268
return false;
6369
}
6470

71+
if (callback) {
72+
return callback(event, res);
73+
}
74+
6575
if (segmentId !== undefined) {
6676
return event.segment_id === segmentId;
6777
}

0 commit comments

Comments
 (0)