Skip to content

Commit 97a80eb

Browse files
authored
test(screenshot): fix flaky "event loop is blocked" test (#41688)
1 parent 11a8331 commit 97a80eb

1 file changed

Lines changed: 7 additions & 5 deletions

File tree

tests/library/screenshot.spec.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -213,12 +213,14 @@ browserTest.describe('page screenshot', () => {
213213
browserTest('should not hang when event loop is blocked', { annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/36702' } }, async ({ page, trace }) => {
214214
browserTest.skip(trace === 'on', 'taking a snapshot hangs when the page is blocked');
215215
browserTest.setTimeout(5000);
216-
await page.evaluate(() => {
217-
window.builtins.setTimeout(() => {
216+
const __testHookBeforeScreenshot = async () => {
217+
page.evaluate(() => {
218+
console.log('blocked');
218219
while (true) {}
219-
}, 10);
220-
});
221-
await expect(page.screenshot({ fullPage: true, timeout: 200 })).rejects.toThrow(/page.screenshot: Timeout 200ms exceeded/);
220+
}).catch(() => {});
221+
await page.waitForEvent('console', e => e.text() === 'blocked');
222+
};
223+
await expect(page.screenshot({ fullPage: true, timeout: 200, __testHookBeforeScreenshot } as any)).rejects.toThrow(/page.screenshot: Timeout 200ms exceeded/);
222224
});
223225
});
224226

0 commit comments

Comments
 (0)