From 9997ef17ee5e36b9006bcbd1d714f1732d095829 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:02:23 +0300 Subject: [PATCH 1/9] e2e config: more browsers --- playwright.config.ts | 34 ++++++++++++++++------------------ 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/playwright.config.ts b/playwright.config.ts index 7b7c94b..8023adc 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -38,26 +38,24 @@ export default defineConfig({ name: "chromium", use: { ...devices["Desktop Chrome"] }, }, - - // { - // name: 'firefox', - // use: { ...devices['Desktop Firefox'] }, - // }, - - // { - // name: 'webkit', - // use: { ...devices['Desktop Safari'] }, - // }, + { + name: "firefox", + use: { ...devices["Desktop Firefox"] }, + }, + { + name: "webkit", + use: { ...devices["Desktop Safari"] }, + }, /* Test against mobile viewports. */ - // { - // name: 'Mobile Chrome', - // use: { ...devices['Pixel 5'] }, - // }, - // { - // name: 'Mobile Safari', - // use: { ...devices['iPhone 12'] }, - // }, + { + name: "chromium-mobile", + use: { ...devices["Pixel 5"] }, + }, + { + name: "safari-mobile", + use: { ...devices["iPhone 12"] }, + }, /* Test against branded browsers. */ // { From 535be893e81070e366cbaf1e115d7e5354f8af03 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:02:36 +0300 Subject: [PATCH 2/9] new screenshots: mac --- ...s-scenes-visual-1-chromium-mobile-darwin.png | Bin 0 -> 6546 bytes .../renders-scenes-visual-1-firefox-darwin.png | Bin 0 -> 11439 bytes ...ers-scenes-visual-1-safari-mobile-darwin.png | Bin 0 -> 12412 bytes .../renders-scenes-visual-1-webkit-darwin.png | Bin 0 -> 25843 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-darwin.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-darwin.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-darwin.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-darwin.png diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-darwin.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..e8c4d1a6e3ba8bfef58f120261bde934cd1d4c6e GIT binary patch literal 6546 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 Bqrm_G literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-darwin.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..b3234755f8d8d627669ace9db5c8de0438d082fa GIT binary patch literal 11439 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 literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-darwin.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..97c6837b0ecdcc9d3effdd1bb7b95eba2e1dd6cc GIT binary patch literal 12412 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 literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-darwin.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-darwin.png new file mode 100644 index 0000000000000000000000000000000000000000..3926bbe3c70655803168d3e38492ff7d3799ecde GIT binary patch literal 25843 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 CX1jU- literal 0 HcmV?d00001 From e91b82a5fd710785427d70d5ddf5c02db1575a22 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Thu, 24 Sep 2026 17:02:43 +0300 Subject: [PATCH 3/9] new screenshots: linux (docker) --- ...rs-scenes-visual-1-chromium-mobile-linux.png | Bin 0 -> 6428 bytes .../renders-scenes-visual-1-firefox-linux.png | Bin 0 -> 8227 bytes ...ders-scenes-visual-1-safari-mobile-linux.png | Bin 0 -> 7009 bytes .../renders-scenes-visual-1-webkit-linux.png | Bin 0 -> 11293 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-linux.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-linux.png create mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-linux.png diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-linux.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-chromium-mobile-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..2b3df654a6d3ffbe32abe45b072807fc493d71e6 GIT binary patch literal 6428 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 bY*X_8;rVf_w_(VpMalU`h~sOA>ks|`HIb^G literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..8f7cc71fed6521b916cdfbddd0c95a7ec3979d88 GIT binary patch literal 8227 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 literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-linux.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-safari-mobile-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..299ed72b4c0c5b2aa059917dc0e03385b5f12b30 GIT binary patch literal 7009 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 THUR!j2DyF91o8gH!>9iP7Wn!5 literal 0 HcmV?d00001 diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-linux.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-webkit-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..045c184ae7dc18318818624d6f6b0839fd58535f GIT binary patch literal 11293 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 Date: Thu, 24 Sep 2026 17:49:04 +0300 Subject: [PATCH 4/9] stable "test:e2e:docker" script --- .dockerignore | 5 +++++ Dockerfile | 11 +++++++++++ playwright.config.ts | 2 +- scripts/docker-e2e.sh | 15 ++++----------- 4 files changed, 21 insertions(+), 12 deletions(-) create mode 100644 .dockerignore create mode 100644 Dockerfile diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..8ad749a --- /dev/null +++ b/.dockerignore @@ -0,0 +1,5 @@ +node_modules +dist +.astro +playwright-report +test-results diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..41b5d9f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,11 @@ +FROM mcr.microsoft.com/playwright:v1.63.0-noble + +WORKDIR /work + +RUN npm install -g pnpm@12 + +COPY package.json pnpm-lock.yaml pnpm-workspace.yaml ./ +RUN pnpm install --frozen-lockfile + +COPY . . +RUN pnpm build diff --git a/playwright.config.ts b/playwright.config.ts index 8023adc..a246899 100644 --- a/playwright.config.ts +++ b/playwright.config.ts @@ -70,7 +70,7 @@ export default defineConfig({ /* Run your local dev server before starting the tests */ webServer: { - command: "pnpm preview", + command: "exec node node_modules/astro/bin/astro.mjs preview", url: "http://localhost:4321/three-visual-testing", reuseExistingServer: !process.env.CI, }, diff --git a/scripts/docker-e2e.sh b/scripts/docker-e2e.sh index 12a3138..b198d4f 100755 --- a/scripts/docker-e2e.sh +++ b/scripts/docker-e2e.sh @@ -1,18 +1,11 @@ #!/usr/bin/env bash set -euo pipefail -IMAGE="mcr.microsoft.com/playwright:v1.63.0-noble" +docker build -t three-visual-testing-e2e . -docker run --rm --ipc=host \ - -u "$(id -u):$(id -g)" \ - -e HOME=/tmp \ - -v "$(pwd)":/work \ - -w /work \ - "$IMAGE" \ +docker run --rm --init --ipc=host \ + -v "$(pwd)/tests-e2e:/work/tests-e2e" \ + three-visual-testing-e2e \ /bin/bash -c ' - wget -qO- https://get.pnpm.io/install.sh | env ENV="$HOME/.bashrc" SHELL="$(which bash)" bash - - source "$HOME/.bashrc" - pnpm install --frozen-lockfile - pnpm build pnpm test:e2e "$@" ' bash "$@" From d147c92fb0ba50037fc48a5b174e4c36bc0b0418 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Thu, 24 Sep 2026 19:06:37 +0300 Subject: [PATCH 5/9] [skip ci] readme: remove post docker run install note --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6796a37..50f938d 100644 --- a/README.md +++ b/README.md @@ -42,7 +42,7 @@ pnpm test:e2e ``` > [!WARNING] -> The `pnpm test:e2e` example was made on macOS (Darwin), which means that the screenshot tests will fail for other operating systems due to low-level rendering differences between them. To update the snapshots for CI (Linux), run `pnpm test:e2e:docker`. After running it, you may also need to re-run `pnpm install` to continue working normally on the project. +> The `pnpm test:e2e` example was made on macOS (Darwin), which means that the screenshot tests will fail for other operating systems due to low-level rendering differences between them. To update the snapshots for CI (Linux), run `pnpm test:e2e:docker`. > > More details: > - [Playwright docs / Continuous Integration / Containers](https://playwright.dev/docs/ci#via-containers) From 4ae1184c1ff8989c0975bf94ed25e294de78fcca Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Sat, 26 Sep 2026 13:50:12 +0300 Subject: [PATCH 6/9] docker: sync all playwright artifacts --- scripts/docker-e2e.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/scripts/docker-e2e.sh b/scripts/docker-e2e.sh index b198d4f..3611b06 100755 --- a/scripts/docker-e2e.sh +++ b/scripts/docker-e2e.sh @@ -5,6 +5,8 @@ docker build -t three-visual-testing-e2e . docker run --rm --init --ipc=host \ -v "$(pwd)/tests-e2e:/work/tests-e2e" \ + -v "$(pwd)/test-results:/work/test-results" \ + -v "$(pwd)/playwright-report:/work/playwright-report" \ three-visual-testing-e2e \ /bin/bash -c ' pnpm test:e2e "$@" From a254d3559a6b2be6db6138428817104c44ec2457 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Sat, 26 Sep 2026 13:55:16 +0300 Subject: [PATCH 7/9] docker: use /app dir --- Dockerfile | 2 +- scripts/docker-e2e.sh | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile b/Dockerfile index 41b5d9f..106c258 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM mcr.microsoft.com/playwright:v1.63.0-noble -WORKDIR /work +WORKDIR /app RUN npm install -g pnpm@12 diff --git a/scripts/docker-e2e.sh b/scripts/docker-e2e.sh index 3611b06..72de478 100755 --- a/scripts/docker-e2e.sh +++ b/scripts/docker-e2e.sh @@ -4,9 +4,9 @@ set -euo pipefail docker build -t three-visual-testing-e2e . docker run --rm --init --ipc=host \ - -v "$(pwd)/tests-e2e:/work/tests-e2e" \ - -v "$(pwd)/test-results:/work/test-results" \ - -v "$(pwd)/playwright-report:/work/playwright-report" \ + -v "$(pwd)/tests-e2e:/app/tests-e2e" \ + -v "$(pwd)/test-results:/app/test-results" \ + -v "$(pwd)/playwright-report:/app/playwright-report" \ three-visual-testing-e2e \ /bin/bash -c ' pnpm test:e2e "$@" From 4722d9277ba698a23d54ed8cf0301fe90a27c6e9 Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Sat, 26 Sep 2026 13:58:49 +0300 Subject: [PATCH 8/9] skip headless firefox on linux canvas tests --- tests-e2e/app.spec.ts | 15 +++++++++++++-- .../renders-scenes-visual-1-firefox-linux.png | Bin 8227 -> 0 bytes 2 files changed, 13 insertions(+), 2 deletions(-) delete mode 100644 tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png diff --git a/tests-e2e/app.spec.ts b/tests-e2e/app.spec.ts index 023d846..da74c33 100644 --- a/tests-e2e/app.spec.ts +++ b/tests-e2e/app.spec.ts @@ -10,7 +10,9 @@ test("has title", async ({ page }) => { await expect(page).toHaveTitle("three-visual-testing"); }); -test("has 2 scenes", async ({ page }) => { +test("has 2 scenes", async ({ page, browserName }) => { + skipIfUnsupported({ browserName }); + await expect(page.locator(".scene")).toHaveCount(2); const sceneWebGL = page.locator(".scene").nth(0); @@ -23,7 +25,9 @@ test("has 2 scenes", async ({ page }) => { await expectThreeCanvas({ locator: sceneWebGPU, engine: "webgpu" }); }); -test("renders scenes @visual", async ({ page }) => { +test("renders scenes @visual", async ({ page, browserName }) => { + skipIfUnsupported({ browserName }); + const sceneWebGL = page.locator(".scene").nth(0); const sceneWebGPU = page.locator(".scene").nth(1); @@ -52,3 +56,10 @@ async function expectThreeCanvas({ await expect(engineAttr).toBe("three.js r186 webgpu"); } } + +function skipIfUnsupported({ browserName }: { browserName: string }): void { + test.skip( + browserName === "firefox" && process.platform === "linux", + "Headless Firefox on Linux has no WebGL context", + ); +} diff --git a/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png b/tests-e2e/app.spec.ts-snapshots/renders-scenes-visual-1-firefox-linux.png deleted file mode 100644 index 8f7cc71fed6521b916cdfbddd0c95a7ec3979d88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8227 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 From 56b9727f92182b239cfee493d54480c559b5770f Mon Sep 17 00:00:00 2001 From: Yehor <20585619+satelllte@users.noreply.github.com> Date: Sat, 26 Sep 2026 13:59:43 +0300 Subject: [PATCH 9/9] expectThreeCanvas: mark "engine" param mandatory --- tests-e2e/app.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests-e2e/app.spec.ts b/tests-e2e/app.spec.ts index da74c33..67b0ef2 100644 --- a/tests-e2e/app.spec.ts +++ b/tests-e2e/app.spec.ts @@ -42,7 +42,7 @@ async function expectThreeCanvas({ engine = "webgl", }: { locator: Locator; - engine?: "webgl" | "webgpu"; + engine: "webgl" | "webgpu"; }): Promise { const canvas = locator.locator("canvas[data-engine]"); await expect(canvas).toBeVisible();