Skip to content

test: add Playwright webServer block so E2E never targets a stale dev server #827

Description

@ericfitz

Summary

The Playwright config (playwright.config.ts) has no webServer block; E2E tests blindly target http://localhost:4200 and use whatever process happens to be listening. On 2026-08-01/02 this produced a materially misleading result: a full DFD E2E run reported 42/58 passing while being served by a stale, long-lived ng serve process that predated a dependency change (#826) which had actually broken every fresh dev-server boot on main (see #762's override collision; diagnosed during #446 execution). The passing run masked a hard bootstrap crash for over a day.

Acceptance Criteria

  • playwright.config.ts gains a webServer entry (e.g. command: pnpm dev:e2e / ng serve --configuration=e2e --port 4200, url: http://localhost:4200) so Playwright owns dev-server lifecycle.
  • reuseExistingServer: false locally (or gated so CI always starts fresh), guaranteeing E2E can never run against a pre-existing server process.
  • Backend prerequisite (localhost:8080) documented or health-checked in global setup with a clear failure message.
  • e2e/README.md updated to reflect that manual ng serve is no longer required.

Notes

Metadata

Metadata

Assignees

No one assigned

    Labels

    size:SThis PR changes 10-29 lines, ignoring generated files.

    Projects

    Status
    Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions