diff --git a/docs/api.md b/docs/api.md index 5f17bc7dd0..cb907e4560 100644 --- a/docs/api.md +++ b/docs/api.md @@ -3963,7 +3963,7 @@ Whenever a network route is set up with [page.route(url, handler)](#pagerouteurl Aborts the route's request. #### route.continue([overrides]) -- `overrides` <[Object]> Optional request overrides, which can be one of the following: +- `overrides` <[Object]> Optional request overrides, can override following properties: - `method` <[string]> If set changes the request method (e.g. GET or POST) - `postData` <[string]|[Buffer]> If set changes the post data of request - `headers` <[Object]<[string], [string]>> If set changes the request HTTP headers. Header values will be converted to a string. diff --git a/test/request-continue.spec.ts b/test/request-continue.spec.ts index eeb2e9d37c..ea72c0bf17 100644 --- a/test/request-continue.spec.ts +++ b/test/request-continue.spec.ts @@ -67,6 +67,19 @@ it('should amend post data', async ({page, server}) => { expect((await serverRequest.postBody).toString('utf8')).toBe('doggo'); }); +it('should amend method and post data', async ({page, server}) => { + await page.goto(server.EMPTY_PAGE); + await page.route('**/*', route => { + route.continue({ method: 'POST', postData: 'doggo' }); + }); + const [serverRequest] = await Promise.all([ + server.waitForRequest('/sleep.zzz'), + page.evaluate(() => fetch('/sleep.zzz', { method: 'GET' })) + ]); + expect(serverRequest.method).toBe('POST'); + expect((await serverRequest.postBody).toString('utf8')).toBe('doggo'); +}); + it('should amend utf8 post data', async ({page, server}) => { await page.goto(server.EMPTY_PAGE); await page.route('**/*', route => {