From e2fe5112d828267b50b57c6b7fd7b98f59a2b3fe Mon Sep 17 00:00:00 2001 From: Simon Knott Date: Mon, 27 Jan 2025 17:05:22 +0100 Subject: [PATCH] test failure --- .../playwright.mockingproxy.spec.ts | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/tests/playwright-test/playwright.mockingproxy.spec.ts b/tests/playwright-test/playwright.mockingproxy.spec.ts index adb235ff4c..441e6560cc 100644 --- a/tests/playwright-test/playwright.mockingproxy.spec.ts +++ b/tests/playwright-test/playwright.mockingproxy.spec.ts @@ -317,3 +317,39 @@ test('inject mode knows originating page', async ({ runInlineTest, server, reque expect(result.exitCode).toBe(0); expect(result.passed).toBe(1); }); + +test('failure', async ({ runInlineTest, server, request }) => { + server.setRoute('/fallback', async (req, res) => { + res.socket.destroy(); + }); + server.setRoute('/page', async (req, res) => { + const proxyURL = decodeURIComponent((req.headers['x-playwright-proxy'] as string) ?? ''); + const response = await request.get(proxyURL + server.PREFIX + '/fallback'); + res.end(await response.body()); + }); + const result = await runInlineTest({ + 'playwright.config.ts': ` + module.exports = { + use: { + mockingProxy: { port: 'inject' } + } + }; + `, + 'a.test.ts': ` + import { test, expect } from '@playwright/test'; + test('first', async ({ page, context }) => { + let request; + await page.route('${server.PREFIX}/fallback', route => { + request = route.request(); + route.continue(); + }); + await page.goto('${server.PREFIX}/page'); + + expect(request.failure()).toEqual({ errorText: expect.any(String) }); + }); + ` + }, { workers: 1 }); + + expect(result.exitCode).toBe(0); + expect(result.passed).toBe(1); +});