Skip to content

feat(e2e): add Playwright E2E test harness with smoke test - #41

Merged
NoNamer777 merged 5 commits into
mainfrom
feat/playwright-e2e-harness
Aug 12, 2026
Merged

feat(e2e): add Playwright E2E test harness with smoke test#41
NoNamer777 merged 5 commits into
mainfrom
feat/playwright-e2e-harness

Conversation

@NoNamer777

@NoNamer777 NoNamer777 commented Aug 12, 2026

Copy link
Copy Markdown
Member

Summary

Adds the Playwright E2E test harness for this repo: @playwright/test as a devDependency, a root playwright.config.ts, an e2e/ directory with an initial smoke test (app loads, "Root works!" placeholder visible), and e2e (local UI/watch mode) / e2e-ci (headless) scripts.

Locally, tests reuse the dev server at https://localhost.www.dndmapp.dev:4000 if it's already running, and start it otherwise (pnpm start via Playwright's webServer). The base URL is configurable via E2E_BASE_URL, and the webServer is skipped entirely when CI is set, so a later ticket can wire in CI's own Caddy-fronted Docker Compose stack without reworking this harness. Reports go to Playwright's own default playwright-report//test-results/ folders, kept separate from the existing Vitest reports/ output.

Also bumps the playwright catalog pin from ~1.62.0 to ~1.62.1 to match @playwright/test, since a version mismatch between the two throws a dual test-runner-instance error ("Playwright Test did not expect test() to be called here").

Related issues

Resolves #39, part of #38

Checklist

  • Title and description follow the Creating a Pull Request guide
  • Commit messages follow Conventional Commits and are grouped by intent
  • Tests were added or updated as needed
  • Documentation was updated as needed
  • CI checks pass

Adds @playwright/test, a root playwright.config.ts, and an e2e/
smoke test asserting the app loads and the root placeholder is
visible. The base URL is configurable via E2E_BASE_URL (defaults to
the local HTTPS dev server); locally, tests reuse the dev server if
it's already running and start it otherwise, while CI is expected to
supply its own base URL and skips the webServer entirely.

Bumps the playwright catalog pin to ~1.62.1 to match @playwright/test
- a version mismatch between the two causes a dual test-runner-
instance error.

@NoNamer777 NoNamer777 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two-axis review (standards + spec) passed clean. No hard violations, all of #39's requirements are met, and #38's out-of-scope items (CI wiring, Caddy stack) are correctly left alone. One latent-risk nit on the @playwright/test/playwright catalog pins, left inline. Non-blocking.

Comment thread pnpm-workspace.yaml Outdated
Comment thread playwright.config.ts
@playwright/test was left pinned at ~1.62.0 while playwright was
bumped to ~1.62.1 to avoid the dual-test-runner-instance error. Both
currently resolve to 1.62.1, but the looser ~1.62.0 range could
re-resolve down to 1.62.0 on a future lockfile refresh and
reintroduce that mismatch.
…orts/

Consolidates vitest's HTML test reporter and Playwright's HTML report
and test artifacts under reports/test/ and reports/e2e/ respectively,
alongside the existing reports/ convention. Coverage output is
unaffected. Drops the now-redundant playwright-report/ and
test-results/ .gitignore entries since both are nested under the
already-ignored reports/.
@NoNamer777
NoNamer777 merged commit 164c179 into main Aug 12, 2026
3 checks passed
@NoNamer777
NoNamer777 deleted the feat/playwright-e2e-harness branch August 12, 2026 11:19
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.

Build the Playwright E2E test harness

1 participant