diff --git a/tests/library/inspector/inspectorTest.ts b/tests/library/inspector/inspectorTest.ts index 524fab1e57..6aefd462d3 100644 --- a/tests/library/inspector/inspectorTest.ts +++ b/tests/library/inspector/inspectorTest.ts @@ -171,6 +171,13 @@ export class Recorder { return this.page.locator('x-pw-tooltip').textContent(); } + async waitForHighlightNoTooltip(action: () => Promise): Promise { + await this.page.$$eval('x-pw-highlight', els => els.forEach(e => e.remove())); + await action(); + await this.page.locator('x-pw-highlight').waitFor(); + return ''; + } + async waitForActionPerformed(): Promise<{ hovered: string | null, active: string | null }> { let callback; const listener = async msg => { @@ -185,8 +192,8 @@ export class Recorder { return new Promise(f => callback = f); } - async hoverOverElement(selector: string, options?: { position?: { x: number, y: number }}): Promise { - return this.waitForHighlight(async () => { + async hoverOverElement(selector: string, options?: { position?: { x: number, y: number }, omitTooltip?: boolean }): Promise { + return (options?.omitTooltip ? this.waitForHighlightNoTooltip : this.waitForHighlight).call(this, async () => { const box = await this.page.locator(selector).first().boundingBox(); const offset = options?.position || { x: box.width / 2, y: box.height / 2 }; await this.page.mouse.move(box.x + offset.x, box.y + offset.y); diff --git a/tests/library/inspector/pause.spec.ts b/tests/library/inspector/pause.spec.ts index 12b7ed940f..647706956f 100644 --- a/tests/library/inspector/pause.spec.ts +++ b/tests/library/inspector/pause.spec.ts @@ -15,7 +15,7 @@ */ import type { Page } from 'playwright-core'; -import { test as it, expect } from './inspectorTest'; +import { test as it, expect, Recorder } from './inspectorTest'; import { waitForTestLog } from '../../config/utils'; @@ -491,7 +491,11 @@ it.describe('pause', () => { await expect(recorderPage.getByRole('combobox', { name: 'Source chooser' })).toHaveValue(/pause\.spec\.ts/); await expect(recorderPage.locator('.source-line-paused')).toHaveText(/await page\.pause\(\)/); await recorderPage.getByRole('button', { name: 'Record' }).click(); - await page.locator('body').click(); + + const recorder = new Recorder(page, recorderPage); + await recorder.hoverOverElement('body', { omitTooltip: true }); + await recorder.trustedClick(); + await expect(recorderPage.getByRole('combobox', { name: 'Source chooser' })).toHaveValue('javascript'); await expect(recorderPage.locator('.cm-wrapper')).toContainText(`await page.locator('body').click();`); await recorderPage.getByRole('button', { name: 'Resume' }).click();