diff --git a/packages/pluggableWidgets/video-player-web/e2e/VideoPlayer.spec.js b/packages/pluggableWidgets/video-player-web/e2e/VideoPlayer.spec.js index bcd66d23ed..badc41bdc1 100644 --- a/packages/pluggableWidgets/video-player-web/e2e/VideoPlayer.spec.js +++ b/packages/pluggableWidgets/video-player-web/e2e/VideoPlayer.spec.js @@ -106,30 +106,39 @@ test.describe("Error page", () => { }); test.describe("External video", () => { - test.beforeEach(async ({ page }) => { + test("renders a poster", async ({ page }, testInfo) => { + // Register the route before navigation so the mp4 fetch is intercepted + // from the start. The beforeEach can't be used here because it runs + // before the test body, after which it's too late to register the route. + const stubPath = testInfo.file.replace("VideoPlayer.spec.js", "fixtures/stub.mp4"); + await page.route("**/*.mp4", route => + route.fulfill({ + status: 200, + contentType: "video/mp4", + path: stubPath + }) + ); await page.goto("/p/external"); - }); - test("renders a poster", async ({ page }) => { const widget = page.locator(".widget-video-player"); const videoLocator = page.locator(".widget-video-player video"); await widget.scrollIntoViewIfNeeded(); await expect(widget).toBeVisible(); await expect(videoLocator).toHaveAttribute("poster", /.+/); - // Wait for poster image to decode in-page before screenshotting. - // page.evaluate with a separate Image() is unreliable — the promise can - // resolve before the