From 18730b522f16c5ae61b908a6ee3ff914e026dd5c Mon Sep 17 00:00:00 2001 From: Francesco Novy Date: Thu, 15 Oct 2026 13:55:35 +0200 Subject: [PATCH] test(replay): Fix flaky bufferStalledRequests segmentId assertion Co-Authored-By: Claude Opus 5.5 --- .../suites/replay/bufferStalledRequests/test.ts | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests/test.ts b/dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests/test.ts index ea106dfcd7ff..c38d31da2e12 100644 --- a/dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests/test.ts +++ b/dev-packages/browser-integration-tests/suites/replay/bufferStalledRequests/test.ts @@ -2,9 +2,11 @@ import { expect } from '@playwright/test'; import { sentryTest } from '../../../utils/fixtures'; import { envelopeRequestParser, waitForErrorRequest } from '../../../utils/helpers'; import { + getReplayEvent, getReplaySnapshot, isReplayEvent, shouldSkipReplayTest, + waitForReplayRequest, waitForReplayRunning, } from '../../../utils/replayHelpers'; @@ -155,16 +157,22 @@ sentryTest('buffer mode remains after interrupting replay flush', async ({ getLo expect(firstSession.session?.dirty).toBe(true); expect(firstSession.recordingMode).toBe('buffer'); // But still in buffer mode + // The resumed session flushes shortly after reload, which bumps `segmentId` again, so a snapshot + // can't reliably observe `segmentId: 1`. Assert on the first segment sent after reload instead. + const resumedReplayRequestPromise = waitForReplayRequest(page); await page.reload(); await waitForReplayRunning(page); const secondSession = await getReplaySnapshot(page); expect(secondSession.session?.sampled).toBe('buffer'); expect(secondSession.session?.dirty).toBe(true); expect(secondSession.session?.id).toBe(firstSessionId); - expect(secondSession.session?.segmentId).toBe(1); // Because a flush attempt was made and not allowed to complete, segmentId increased from 0, // so we resume in session mode expect(secondSession.recordingMode).toBe('session'); + + const resumedReplayEvent = getReplayEvent(await resumedReplayRequestPromise); + expect(resumedReplayEvent.replay_id).toBe(firstSessionId); + expect(resumedReplayEvent.segment_id).toBe(1); }); sentryTest(