Ref: #5
Bootstrap Playwright test infrastructure for CI-driven E2E testing.
@playwright/test
playwright.config.ts
test:e2e
test:e2e:headed
test:e2e:debug
tests/ ├── e2e/ │ └── fixtures/ │ └── test-data.ts # Shared selectors, viewports, timeouts ├── playwright.config.ts └── ci/ ├── Dockerfile.e2e # Node + Playwright browsers image └── e2e-docker-compose.yml # Spin up app + test runner
Dockerfile.e2e
mcr.microsoft.com/playwright
e2e-docker-compose.yml
pnpm test:e2e
.gitignore
test-results/
playwright-report/
blob-report/
docker compose -f tests/ci/e2e-docker-compose.yml up
webServer
pnpm run dev
BASE_URL
http://app:3000
No dependencies set.
The note is not visible to the blocked user.
Parent
Ref: #5
Objective
Bootstrap Playwright test infrastructure for CI-driven E2E testing.
Tasks
@playwright/test+ browser depsplaywright.config.tswith projects: Chromium, Firefox, WebKit, Mobile Chrome, Mobile Safari, iPadtest:e2e,test:e2e:headed,test:e2e:debugDockerfile.e2ebased onmcr.microsoft.com/playwrightimagee2e-docker-compose.ymlwith:pnpm test:e2e.gitignoreentries:test-results/,playwright-report/,blob-report/pnpm test:e2eruns (even with 0 test files)Acceptance
pnpm test:e2eruns without errorsdocker compose -f tests/ci/e2e-docker-compose.yml upspawns app + test runnerNotes
webServerin playwright config should startpnpm run devfor local, but CI uses pre-built containerBASE_URLenv var for CI override (http://app:3000)