Skip to content

Commit 84e9b46

Browse files
test(video-player): add waitFrames helper to improve animation frame handling
1 parent e89192d commit 84e9b46

2 files changed

Lines changed: 8 additions & 2 deletions

File tree

automation/run-e2e/lib/mendix-helpers.mjs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,12 @@ export async function navigateToPage(page, path, timeout = 30_000) {
4141
await waitForMendixApp(page, timeout);
4242
}
4343

44+
export async function waitFrames(page, n = 2) {
45+
for (let i = 0; i < n; i++) {
46+
await page.evaluate(() => new Promise(r => requestAnimationFrame(r)));
47+
}
48+
}
49+
4450
export async function checkAccessibility(page, selector, options = {}) {
4551
const AxeBuilder = (await import("@axe-core/playwright")).default;
4652
let builder = new AxeBuilder({ page }).withTags(options.tags || ["wcag21aa"]);

packages/pluggableWidgets/video-player-web/e2e/VideoPlayer.spec.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { test, expect } from "@mendix/run-e2e/fixtures";
2-
import { waitForWidget } from "@mendix/run-e2e/mendix-helpers";
2+
import { waitForWidget, waitFrames } from "@mendix/run-e2e/mendix-helpers";
33

44
test.describe("Video Player", () => {
55
test.beforeEach(async ({ page }) => {
@@ -130,7 +130,7 @@ test.describe("External video", () => {
130130
: Promise.resolve()
131131
);
132132
// Wait two animation frames so the browser flushes layout and paints the poster frame.
133-
await page.evaluate(() => new Promise(r => requestAnimationFrame(() => requestAnimationFrame(r))));
133+
await waitFrames(page, 2);
134134
await expect(widget).toHaveScreenshot("videoPlayerExternalPoster.png");
135135
});
136136

0 commit comments

Comments
 (0)