Skip to content

Commit d464260

Browse files
committed
formatting
1 parent 7630edd commit d464260

File tree

1 file changed

+72
-75
lines changed
  • dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests

1 file changed

+72
-75
lines changed

dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests/test.ts

Lines changed: 72 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -89,86 +89,83 @@ sentryTest(
8989
},
9090
);
9191

92-
sentryTest(
93-
'buffer mode remains after interrupting replay flush',
94-
async ({ getLocalTestUrl, page, browserName }) => {
95-
if (shouldSkipReplayTest() || browserName === 'webkit') {
96-
sentryTest.skip();
97-
}
98-
99-
let errorCount = 0;
100-
let replayCount = 0;
101-
const errorEventIds: string[] = [];
102-
const replayIds: string[] = [];
103-
let firstReplayEventResolved: (value?: unknown) => void = () => {};
104-
// Need TS 5.7 for withResolvers
105-
const firstReplayEventPromise = new Promise(resolve => {
106-
firstReplayEventResolved = resolve;
107-
});
108-
109-
const url = await getLocalTestUrl({ testDir: __dirname, skipDsnRouteHandler: true });
110-
111-
await page.route('https://dsn.ingest.sentry.io/**/*', async route => {
112-
const event = envelopeRequestParser(route.request());
113-
114-
// Track error events
115-
if (event && !event.type && event.event_id) {
116-
errorCount++;
117-
errorEventIds.push(event.event_id);
118-
if (event.tags?.replayId) {
119-
replayIds.push(event.tags.replayId as string);
120-
}
92+
sentryTest('buffer mode remains after interrupting replay flush', async ({ getLocalTestUrl, page, browserName }) => {
93+
if (shouldSkipReplayTest() || browserName === 'webkit') {
94+
sentryTest.skip();
95+
}
96+
97+
let errorCount = 0;
98+
let replayCount = 0;
99+
const errorEventIds: string[] = [];
100+
const replayIds: string[] = [];
101+
let firstReplayEventResolved: (value?: unknown) => void = () => {};
102+
// Need TS 5.7 for withResolvers
103+
const firstReplayEventPromise = new Promise(resolve => {
104+
firstReplayEventResolved = resolve;
105+
});
106+
107+
const url = await getLocalTestUrl({ testDir: __dirname, skipDsnRouteHandler: true });
108+
109+
await page.route('https://dsn.ingest.sentry.io/**/*', async route => {
110+
const event = envelopeRequestParser(route.request());
111+
112+
// Track error events
113+
if (event && !event.type && event.event_id) {
114+
errorCount++;
115+
errorEventIds.push(event.event_id);
116+
if (event.tags?.replayId) {
117+
replayIds.push(event.tags.replayId as string);
121118
}
119+
}
122120

123-
// Track replay events and simulate failure for the first replay
124-
if (event && isReplayEvent(event)) {
125-
replayCount++;
126-
if (replayCount === 1) {
127-
firstReplayEventResolved();
128-
// intentional so that it never resolves, we'll force a reload instead to interrupt the normal flow
129-
await new Promise(resolve => setTimeout(resolve, 100000));
130-
}
121+
// Track replay events and simulate failure for the first replay
122+
if (event && isReplayEvent(event)) {
123+
replayCount++;
124+
if (replayCount === 1) {
125+
firstReplayEventResolved();
126+
// intentional so that it never resolves, we'll force a reload instead to interrupt the normal flow
127+
await new Promise(resolve => setTimeout(resolve, 100000));
131128
}
129+
}
132130

133-
// Success for other requests
134-
return route.fulfill({
135-
status: 200,
136-
contentType: 'application/json',
137-
body: JSON.stringify({ id: 'test-id' }),
138-
});
131+
// Success for other requests
132+
return route.fulfill({
133+
status: 200,
134+
contentType: 'application/json',
135+
body: JSON.stringify({ id: 'test-id' }),
139136
});
140-
141-
await page.goto(url);
142-
143-
// Wait for replay to initialize
144-
await waitForReplayRunning(page);
145-
146-
await page.locator('#error1').click();
147-
await firstReplayEventPromise;
148-
expect(errorCount).toBe(1);
149-
expect(replayCount).toBe(1);
150-
expect(replayIds).toHaveLength(1);
151-
152-
// Get the first session info
153-
const firstSession = await getReplaySnapshot(page);
154-
const firstSessionId = firstSession.session?.id;
155-
expect(firstSessionId).toBeDefined();
156-
expect(firstSession.session?.sampled).toBe('buffer');
157-
expect(firstSession.session?.dirty).toBe(true);
158-
expect(firstSession.recordingMode).toBe('buffer'); // But still in buffer mode
159-
160-
await page.reload();
161-
await waitForReplayRunning(page);
162-
const secondSession = await getReplaySnapshot(page);
163-
expect(secondSession.session?.sampled).toBe('buffer');
164-
expect(secondSession.session?.dirty).toBe(true);
165-
expect(secondSession.session?.id).toBe(firstSessionId);
166-
expect(secondSession.session?.segmentId).toBe(1);
167-
// Because a flush attempt was made and not allowed to complete, segmentId increased from 0,
168-
// so we resume in session mode
169-
expect(secondSession.recordingMode).toBe('session');
170-
},
171-
);
137+
});
138+
139+
await page.goto(url);
140+
141+
// Wait for replay to initialize
142+
await waitForReplayRunning(page);
143+
144+
await page.locator('#error1').click();
145+
await firstReplayEventPromise;
146+
expect(errorCount).toBe(1);
147+
expect(replayCount).toBe(1);
148+
expect(replayIds).toHaveLength(1);
149+
150+
// Get the first session info
151+
const firstSession = await getReplaySnapshot(page);
152+
const firstSessionId = firstSession.session?.id;
153+
expect(firstSessionId).toBeDefined();
154+
expect(firstSession.session?.sampled).toBe('buffer');
155+
expect(firstSession.session?.dirty).toBe(true);
156+
expect(firstSession.recordingMode).toBe('buffer'); // But still in buffer mode
157+
158+
await page.reload();
159+
await waitForReplayRunning(page);
160+
const secondSession = await getReplaySnapshot(page);
161+
expect(secondSession.session?.sampled).toBe('buffer');
162+
expect(secondSession.session?.dirty).toBe(true);
163+
expect(secondSession.session?.id).toBe(firstSessionId);
164+
expect(secondSession.session?.segmentId).toBe(1);
165+
// Because a flush attempt was made and not allowed to complete, segmentId increased from 0,
166+
// so we resume in session mode
167+
expect(secondSession.recordingMode).toBe('session');
168+
});
172169

173170
sentryTest(
174171
'starts a new session after interrupting replay flush and session "expires"',

0 commit comments

Comments
 (0)