With reuseExistingServer: true, Playwright silently reuses whatever
is on port 4242 without health checks. A stale ng serve that no
longer serves assets causes all tests to fail with cryptic 404s.
Setting false makes Playwright fail fast with a clear error message.
Add Docker setup for running E2E tests with the Angular dev server
containerized while Playwright runs on the host. Supports multiple
instances via configurable ports.
New files:
- Dockerfile.e2e.dev: Dev server image
- docker-compose.e2e.yaml: E2E orchestration config
- scripts/wait-for-app.sh: Health check script
New npm scripts:
- e2e:docker: Run E2E with containerized app
- e2e:docker:webdav: Same but includes WebDAV for sync tests
Usage: APP_PORT=4343 npm run e2e:docker
- Remove Angular testability API checks from waitForAngularStability
Experiment showed Playwright's auto-waiting is sufficient for most tests
- Fix time-tracking-feature test: add missing await, replace hardcoded
waitForTimeout with proper toHaveClass assertions
- Refactor plugin-simple-enable test to use SettingsPage methods
instead of brittle page.evaluate() DOM manipulation (106 -> 33 lines)
- Change trace config to 'retain-on-failure' for better debugging
- Add 'npx playwright install --with-deps chromium' step to CI workflows
- Remove unnecessary Chrome setup action (replaced by Playwright)
- This fixes "Executable doesn't exist" error when launching browser
The CI was failing because Playwright browsers weren't installed.
The server now starts successfully in ~60 seconds.
- Change from 'ng serve' to 'npm run startFrontend:e2e'
- This ensures proper environment setup via tools/load-env.js
- Fixes server not starting in CI environment
- Keep timeout at 60s since server should start properly now
The CI was failing because 'ng serve' wasn't accessible directly.
Using the npm script ensures proper PATH resolution and environment setup.
- Increase webserver timeout from 30s to 5 minutes for CI
- Show server output in CI for better debugging
- Don't reuse existing server in CI to ensure clean state
- Limit parallel workers to prevent resource contention
- Add .gitignore for temporary test files
The CI was failing with "Timed out waiting 30000ms from config.webServer"
because the Angular dev server takes longer to start in CI environments