From 5fb426e7dbb86417ac73ccebfce041de8c4a230e Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Mon, 8 May 2023 18:50:40 -0700 Subject: [PATCH] fix(webkit): do not update console counter on unhandled rejections (#22890) Fixes https://github.com/microsoft/playwright/issues/22886 --- .../src/server/webkit/wkPage.ts | 1 + tests/page/page-check.spec.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/packages/playwright-core/src/server/webkit/wkPage.ts b/packages/playwright-core/src/server/webkit/wkPage.ts index d7c2c1a82b..6ab01b462e 100644 --- a/packages/playwright-core/src/server/webkit/wkPage.ts +++ b/packages/playwright-core/src/server/webkit/wkPage.ts @@ -550,6 +550,7 @@ export class WKPage implements PageDelegate { stack = ''; } + this._lastConsoleMessage = null; const error = new Error(message); error.stack = stack; error.name = name; diff --git a/tests/page/page-check.spec.ts b/tests/page/page-check.spec.ts index 01b00ddc55..a79b83368b 100644 --- a/tests/page/page-check.spec.ts +++ b/tests/page/page-check.spec.ts @@ -145,3 +145,21 @@ it('should check the box using setChecked', async ({ page }) => { await page.setChecked('input', false); expect(await page.evaluate(() => window['checkbox'].checked)).toBe(false); }); + +it('do not update console count on unhandled rejections', async ({ page }) => { + const messages: string[] = []; + const consoleEventListener = m => messages.push(m.text()); + page.addListener('console', consoleEventListener); + + await page.evaluate(() => { + const fail = async () => Promise.reject(new Error('error')); + console.log('begin'); + fail(); + fail(); + fail().catch(() => { + console.log('end'); + }); + }); + + await expect.poll(() => messages).toEqual(['begin', 'end']); +});