diff --git a/tests/page/page-history.spec.ts b/tests/page/page-history.spec.ts index 2d04c54ac6..b5083fe0a6 100644 --- a/tests/page/page-history.spec.ts +++ b/tests/page/page-history.spec.ts @@ -267,3 +267,30 @@ it('regression test for issue 20791', async ({ page, server }) => { await page.reload(); await expect.poll(() => messages).toEqual(['foo', 'foo']); }); + +it('should reload proper page', async ({ page, server }) => { + let mainRequest = 0, popupRequest = 0; + server.setRoute('/main.html', (req, res) => { + res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' }); + res.end(`

main: ${++mainRequest}

`); + }); + server.setRoute('/popup.html', (req, res) => { + res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' }); + res.end(`

popup: ${++popupRequest}

`); + }); + await page.goto(server.PREFIX + '/main.html'); + const [popup] = await Promise.all([ + page.waitForEvent('popup'), + page.evaluate(() => window.open('/popup.html')), + ]); + await expect(page.locator('h1')).toHaveText('main: 1'); + await expect(popup.locator('h1')).toHaveText('popup: 1'); + + await page.reload(); + await expect(page.locator('h1')).toHaveText('main: 2'); + await expect(popup.locator('h1')).toHaveText('popup: 1'); + + await popup.reload(); + await expect(page.locator('h1')).toHaveText('main: 2'); + await expect(popup.locator('h1')).toHaveText('popup: 2'); +});