From d2b7e0d1df6c5b2bfb691266a3b5774084faca69 Mon Sep 17 00:00:00 2001 From: Max Schmitt Date: Thu, 3 Dec 2020 18:20:53 +0100 Subject: [PATCH] fix(types): add typed cb for Page.waitForResponse (#4575) --- docs/api.md | 2 +- utils/generate_types/test/test.ts | 28 ++++++++++++++++++++-------- 2 files changed, 21 insertions(+), 9 deletions(-) diff --git a/docs/api.md b/docs/api.md index bfb749e046..5350161092 100644 --- a/docs/api.md +++ b/docs/api.md @@ -2135,7 +2135,7 @@ await page.waitForRequest(request => request.url().searchParams.get('foo') === ' ``` #### page.waitForResponse(urlOrPredicate[, options]) -- `urlOrPredicate` <[string]|[RegExp]|[Function]> Request URL string, regex or predicate receiving [Response] object. +- `urlOrPredicate` <[string]|[RegExp]|[function]\([Response]\):[boolean]> Request URL string, regex or predicate receiving [Response] object. - `options` <[Object]> Optional waiting parameters - `timeout` <[number]> Maximum wait time in milliseconds, defaults to 30 seconds, pass `0` to disable the timeout. The default value can be changed by using the [browserContext.setDefaultTimeout(timeout)](#browsercontextsetdefaulttimeouttimeout) or [page.setDefaultTimeout(timeout)](#pagesetdefaulttimeouttimeout) methods. - returns: <[Promise]<[Response]>> Promise which resolves to the matched response. diff --git a/utils/generate_types/test/test.ts b/utils/generate_types/test/test.ts index e57ca9b518..98193e96bb 100644 --- a/utils/generate_types/test/test.ts +++ b/utils/generate_types/test/test.ts @@ -26,7 +26,7 @@ type AssertNotAny = {notRealProperty: number} extends S ? false : true; await page.goto('https://example.com'); await page.screenshot({ path: 'example.png' }); - browser.close(); + await browser.close(); })(); (async () => { @@ -35,7 +35,7 @@ type AssertNotAny = {notRealProperty: number} extends S ? false : true; await page.goto('https://news.ycombinator.com', { waitUntil: 'networkidle' }); await page.pdf({ path: 'hn.pdf', format: 'A4' }); - browser.close(); + await browser.close(); })(); (async () => { @@ -54,7 +54,7 @@ type AssertNotAny = {notRealProperty: number} extends S ? false : true; console.log('Dimensions:', dimensions); - browser.close(); + await browser.close(); })(); // The following examples are taken from the docs itself @@ -105,7 +105,7 @@ playwright.chromium.launch().then(async browser => { const myHash = await (window as any).md5(myString); console.log(`md5 of ${myString} is ${myHash}`); }); - browser.close(); + await browser.close(); page.on('console', console.log); await page.exposeFunction('readfile', async (filePath: string) => { @@ -189,7 +189,7 @@ playwright.chromium.launch().then(async browser => { page.on('dialog', async dialog => { console.log(dialog.message()); await dialog.dismiss(); - browser.close(); + await browser.close(); }); const inputElement = (await page.$('input[type=submit]'))!; @@ -214,7 +214,7 @@ playwright.chromium.launch().then(async browser => { await page.goto('https://example.com'); await page.screenshot({ path: 'example.png' }); - browser.close(); + await browser.close(); })(); // Test v0.12 features @@ -315,7 +315,7 @@ playwright.chromium.launch().then(async browser => { console.log(await resultHandle.jsonValue()); await resultHandle.dispose(); - browser.close(); + await browser.close(); })(); // test $eval and $$eval @@ -384,7 +384,7 @@ playwright.chromium.launch().then(async browser => { const assertion: AssertType = true; } } - browser.close(); + await browser.close(); })(); // waitForEvent @@ -781,6 +781,18 @@ playwright.chromium.launch().then(async browser => { .off('close', listener); }); +// waitForResponse callback predicate +(async () => { + const browser = await playwright.chromium.launch(); + const page = await browser.newPage(); + await Promise.all([ + page.waitForResponse(response => response.url().includes('example.com')), + page.goto('https://example.com') + ]); + + await browser.close(); +})(); + // exported types import { LaunchOptions,