Run pumlv e2e tests
SkillWeb & browsingRun the Playwright end-to-end suite for pumlv. TRIGGER on both directions — when the user asks to run e2e tests (e.g. "run e2e", "e2eを実行", "make e2e"), validate a UI change in a real browser, or debug a failing spec; AND whenever you are about to run `make e2e`, `pnpm test:e2e`, or `playwright test` on your own initiative (e.g. as part of verifying a frontend PR's Test plan before handing it off, or before declaring a UI-touching change complete). Invoke this skill BEFORE running the e2e command, not after.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Run pumlv e2e tests skill
What this skill tells your AI
The instructions your AI receives, as published by rin2yh/pumlv in .claude/skills/e2e/SKILL.md and read by ahel’s review.
The suite lives in internal/frontend/tests/e2e/ and is driven by make e2e, which:
- Runs
make build—go generate ./...(which builds the embedded SPA viapnpm run build) thengo build -trimpath -o pumlv .. - Runs
cd internal/frontend && pnpm test:e2e(i.e.playwright test). Playwright'swebServerspec spawns the freshly-built./pumlvon127.0.0.1:8766against../../examplesand tears it down after the run.
The configured project is chromium only, and it launches Playwright's bundled Chromium (no branded channel), so the browser comes from playwright install chromium rather than a system Google Chrome.
Run it
make e2e
That is the whole happy path. Run from the repo root.
Recovering from failures
-
Executable doesn't exist at .../chrome-linux/chrome— the bundled Chromium isn't installed. Runcd internal/frontend && pnpm exec playwright install chromium chromium-headless-shell. In sandboxes the browsers are usually preinstalled under/opt/pw-browsers(withPLAYWRIGHT_BROWSERS_PATH=/opt/pw-browsersalready set), so Playwright finds them without a download. Do not editplaywright.config.tsto bake in a sandbox-local path. -
Server didn't come up within 30 s — the binary is missing or stale. Confirm
./pumlv --no-open --port 8766 ./examplesboots by hand. Ifmake buildfails earlier withpattern all:dist: no matching files foundfrominternal/static/embed.go, the frontend bundle wasn't produced — re-runmake buildfrom a clean tree (thego:generatedirective runspnpm install && pnpm run build). -
Port already in use — kill any stray
pumlvfrom a previous run (pgrep -af pumlv) before retrying.playwright.config.tshasreuseExistingServer: !process.env.CI, so a stale local server won't error out by itself but will mask the binary you just built. -
A spec failed — Playwright writes
internal/frontend/playwright-report/index.htmlandinternal/frontend/test-results/<spec>/trace.zipper failure. Inspect those first; don't guess at fixes from the terminal output alone:cd internal/frontend && pnpm exec playwright show-trace test-results/<dir>/trace.zipFix the underlying regression. Don't
test.skipa failure to make CI green — either fix it or report it.
Iterating on one spec
While debugging, re-run only the spec you're working on:
cd internal/frontend && pnpm exec playwright test tests/e2e/<name>.spec.ts
Once it passes, run make e2e once more from the repo root to confirm the whole suite still passes before reporting back.
Don't
- Don't run
pnpm test:e2edirectly without first runningmake build— thewebServer.commandpoints at../../pumlv, which may not exist or may be stale. - Don't add tests to
internal/frontend/tests/e2e/that depend on files outsideexamples/— that directory is what the e2e Playwright config serves.
Signals
- GitHub stars
- 22
- Forks
- 1
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
e2e-rin2yh- Source
- github.com/rin2yh/pumlv