diff --git a/package-lock.json b/package-lock.json index 2650acd7..3efdc6ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "2.3.120", "devDependencies": { "@openai/codex": "0.160.1", - "@playwright/test": "1.63.0", + "@playwright/test": "1.64.0", "acorn": "8.19.0" } }, @@ -143,13 +143,13 @@ } }, "node_modules/@playwright/test": { - "version": "1.63.0", - "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.63.0.tgz", - "integrity": "sha512-oxMK4vllB9RK5NQ2l1pq1IfOf2AvnEuj/vYGDj0H2nMtmtZpKtCwt/l00GEO6xjGfpBNAvjovvYdCm50dRQkpQ==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.64.0.tgz", + "integrity": "sha512-oTN9FNYuN6bqQMwiho6jJKLCG2/QOYCixGXuCjRmzOq23eODeukuY2XiAVoVpAECbuezMt1MHQjAiQxK8F+Y+g==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright": "1.63.0" + "playwright": "1.64.0" }, "bin": { "playwright": "cli.js" @@ -172,13 +172,13 @@ } }, "node_modules/playwright": { - "version": "1.63.0", - "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.63.0.tgz", - "integrity": "sha512-+7ziBLidS4NaNCdt57SUDT+wYmmd5fmiQejUic/kb+YsYSCPyOOE9sebzMjNmQrsnNpDJqd4WHvV/8lfKfUDUg==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/playwright/-/playwright-1.64.0.tgz", + "integrity": "sha512-kVzTnYFYEyQ9RGzBjNCd2+yEqWmVbxl3AHPynv3qQ6JTjv4a+kwRcnqQwIpuP3NnrnIrE/Q6wWAIAvMfIE2/Yg==", "dev": true, "license": "Apache-2.0", "dependencies": { - "playwright-core": "1.63.0" + "playwright-core": "1.64.0" }, "bin": { "playwright": "cli.js" @@ -188,9 +188,9 @@ } }, "node_modules/playwright-core": { - "version": "1.63.0", - "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.63.0.tgz", - "integrity": "sha512-rYCsBF/M5HjUch52bbtVONEFjv6Xu8sm8h72dNlR5bzIE1fvC/bxgspzkjSfU+MweEMmPM8KJebG6nnyxo5mCg==", + "version": "1.64.0", + "resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.64.0.tgz", + "integrity": "sha512-T9r+MZkTECl2+oUcZ26YgZzTrYidTsIhYYkJix+6iDOymOb1FB2RLLSOxRGnZGv5DStt+aduIVbt+E8WygXYpg==", "dev": true, "license": "Apache-2.0", "bin": { diff --git a/package.json b/package.json index a96256fe..dc044ac2 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ }, "devDependencies": { "@openai/codex": "0.160.1", - "@playwright/test": "1.63.0", + "@playwright/test": "1.64.0", "acorn": "8.19.0" } } diff --git a/tests/engineering/dashboard.spec.mjs b/tests/engineering/dashboard.spec.mjs index 2c730888..332dd792 100644 --- a/tests/engineering/dashboard.spec.mjs +++ b/tests/engineering/dashboard.spec.mjs @@ -5417,13 +5417,16 @@ test.describe("Engineering Status browser smoke", () => { } await page.setViewportSize({ width: 390, height: 844 }); - const [narrowUsage, narrowTimeline] = await Promise.all([ - cards.nth(0).boundingBox(), cards.nth(1).boundingBox(), - ]); - expect(narrowUsage).not.toBeNull(); - expect(narrowTimeline).not.toBeNull(); - expect(Math.abs(narrowTimeline.x - narrowUsage.x)).toBeLessThanOrEqual(1); - expect(narrowTimeline.y).toBeGreaterThan(narrowUsage.y); + // Viewport resizing can resolve before the responsive layout is painted. + await expect(async () => { + const [narrowUsage, narrowTimeline] = await Promise.all([ + cards.nth(0).boundingBox(), cards.nth(1).boundingBox(), + ]); + expect(narrowUsage).not.toBeNull(); + expect(narrowTimeline).not.toBeNull(); + expect(Math.abs(narrowTimeline.x - narrowUsage.x)).toBeLessThanOrEqual(1); + expect(narrowTimeline.y).toBeGreaterThan(narrowUsage.y); + }).toPass({ timeout: 5000 }); }); test("formats preflight timestamps through the selected dashboard locale", async ({ page }) => {