Skip to content

Commit 5fbd103

Browse files
committed
Fix flaky test of screensaver animation
1 parent 4d21cae commit 5fbd103

File tree

1 file changed

+15
-7
lines changed

1 file changed

+15
-7
lines changed

β€Žtests/screensavers.spec.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,19 @@ test('closes when pressing a key', async ({ page }) => {
3535
test('has an animated canvas', async ({ page }) => {
3636
const canvas = page.frameLocator('iframe').locator('#canvas-webgl');
3737
await expect(canvas).toBeVisible();
38-
const firstFrame = await canvas.screenshot();
39-
await page.waitForTimeout(200);
40-
const secondFrame = await canvas.screenshot();
41-
await page.waitForTimeout(200);
42-
const thirdFrame = await canvas.screenshot();
43-
expect(secondFrame).not.toEqual(firstFrame);
44-
expect(thirdFrame).not.toEqual(secondFrame);
38+
expect(await canvas.evaluate((canvas: HTMLCanvasElement) => {
39+
const frames = new Set();
40+
return new Promise((resolve) => {
41+
function animate() {
42+
frames.add(canvas.toDataURL());
43+
const uniqueFrames = frames.size;
44+
if (uniqueFrames > 10) {
45+
resolve(uniqueFrames);
46+
} else {
47+
requestAnimationFrame(animate);
48+
}
49+
}
50+
animate();
51+
});
52+
})).toBeGreaterThan(10);
4553
});

0 commit comments

Comments
Β (0)