diff --git a/test/browser/msw-api/setup-worker/stop/in-flight-request.test.ts b/test/browser/msw-api/setup-worker/stop/in-flight-request.test.ts index f48b0a3f2..e979b4259 100644 --- a/test/browser/msw-api/setup-worker/stop/in-flight-request.test.ts +++ b/test/browser/msw-api/setup-worker/stop/in-flight-request.test.ts @@ -60,3 +60,45 @@ test('bypasses requests made after the worker was stopped', async ({ await expect(dataPromise).resolves.toBe('original response') }) + +// Note: Let's temporarily repeat this test to make it more likely to identify flakyness. +// This is not a definitive test case. +for (let testNumber = 1; testNumber <= 50; testNumber++) { + test(`bypasses requests not immediately made after the worker was stopped, considering no default response (${testNumber})`, async ({ + loadExample, + page, + }) => { + await loadExample(new URL('./in-flight-request.mocks.ts', import.meta.url)) + + // Stop worker and make request in different `page.evaluate` calls. + await page.evaluate(async () => { + window.msw.worker.stop() + }) + + const data = await page.evaluate(async () => { + return fetch('/resource').then((response) => response.text()) + }) + + expect(data).toContain('Cannot GET /resource') + }) +} + +// Note: Let's temporarily repeat this test to make it more likely to identify flakyness. +// This is not a definitive test case. +for (let testNumber = 1; testNumber <= 50; testNumber++) { + test(`bypasses requests immediately made after the worker was stopped, considering no default response (${testNumber})`, async ({ + loadExample, + page, + }) => { + await loadExample(new URL('./in-flight-request.mocks.ts', import.meta.url)) + + // Stop worker and make request in the same `page.evaluate` call. + const data = await page.evaluate(async () => { + window.msw.worker.stop() + + return fetch('/resource').then((response) => response.text()) + }) + + expect(data).toContain('Cannot GET /resource') + }) +}