Skip to content

chore(e2e): upgrade Playwright and run e2e on Node 24.18.1 - #123

Merged
flamboh merged 1 commit into
mainfrom
chore/playwright-upgrade
Sep 29, 2026
Merged

flamboh merged 1 commit into
mainfrom
chore/playwright-upgrade

Conversation

@flamboh

@flamboh flamboh commented Sep 29, 2026

Copy link
Copy Markdown
Owner

Summary

Upgrades Playwright from 1.52.0 to 1.59.1, which lets the e2e environment use Node 24.18.1 like everything else. Before this change, shell.nix and the CI e2e job ran an older Node, because Playwright 1.52 hangs while it loads its config on Node 24.18.1.

How to verify

  1. nix-shell --run 'node --version' prints v24.18.1.
  2. Reinstall inside the shell, then run e2e: nix-shell --run 'bun install --frozen-lockfile' && bun run test:e2e.
    • Expected: 17 passed. No better-sqlite3 NODE_MODULE_VERSION mismatch, because the install and the test run now share one Node major.
  3. CI: the Playwright E2E job sets up Node from .node-version and passes.

Version choices

  • Playwright 1.59.1, not the latest 1.63.0. shell.nix takes browsers from nixpkgs playwright-driver, and they must match the npm version. 1.59.1 is the newest release on the stable nixos-26.05 channel, and 1.53+ fixes the hang. Getting 1.63 would mean either pinning nixos-unstable or building browser derivations by hand.
  • nixpkgs 02e0898 (a nixos-26.05 Hydra eval from 2026-08-14). At that revision nodejs_24 is exactly 24.18.1 and playwright-driver is 1.59.1, and both are in cache.nixos.org, so nothing builds from source. The current nixos-26.05 tip ships Node 24.21.0, and Node 24.19.0+ crashes better-sqlite3 (nodejs/node#65446).
  • Browser revisions match: Playwright 1.59.1 expects chromium-1217, and that is the revision in PLAYWRIGHT_BROWSERS_PATH.
  • The shell moves from nixos-25.05 to nixos-26.05, which updates the rest of the dev toolchain (gcc, python, etc.). Bun stays pinned to 1.3.11 through the existing override.

Changes

  • apps/web/package.json and bun.lock: @playwright/test 1.59.1.
  • shell.nix: pinned to nixpkgs nixos-26.05 rev 02e0898.
  • CI e2e job: adds actions/setup-node with .node-version again. Browsers are still installed with bunx playwright install, which follows the npm version.
  • docs/code/architecture.md: drops the Node exception for e2e.

Verification

  • bun run test:e2e in the nix shell after a clean bun install on Node 24.18.1: 17 passed.
  • bun run format, bun run lint, bun run typecheck: pass.
  • bun run test:web: 201 passed.

Upgrade @playwright/test to 1.59.1 and pin shell.nix to a nixos-26.05
revision whose nodejs_24 is 24.18.1 and whose playwright-driver is 1.59.1,
so nix-provided browsers match the npm package. The CI e2e job sets up
Node from .node-version again.
@flamboh
flamboh merged commit 36f60ac into main Sep 29, 2026
3 checks passed
@flamboh
flamboh deleted the chore/playwright-upgrade branch September 29, 2026 08:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant