Add Playwright e2e coverage and Node 20 pin
This commit is contained in:
86
frontend/e2e/README.md
Normal file
86
frontend/e2e/README.md
Normal file
@@ -0,0 +1,86 @@
|
||||
# Playwright E2E
|
||||
|
||||
ResolutionFlow's Playwright suite is still intentionally lean, but it now covers the main routes and workflows most likely to break demos, onboarding, or day-one product usage.
|
||||
|
||||
## What it covers
|
||||
|
||||
- Public landing page
|
||||
- Redirect behavior for protected routes
|
||||
- UI login flow
|
||||
- Authenticated dashboard shell
|
||||
- Session history page
|
||||
- Session history filtering
|
||||
- Feedback page
|
||||
- Account settings page
|
||||
- Profile save flow
|
||||
- Flow library search
|
||||
- Start session directly from library search results
|
||||
- Resume incomplete session
|
||||
- Start and complete a troubleshooting session
|
||||
- Export preview for a completed session
|
||||
- Personal analytics page
|
||||
- Team analytics page
|
||||
- Shared sessions exports page
|
||||
- Public shared session page
|
||||
|
||||
## How auth works
|
||||
|
||||
- `auth.setup.ts` logs in through the backend API using the seeded team admin user
|
||||
- it writes a Playwright storage state file to `e2e/.auth/team-admin.json`
|
||||
- most authenticated specs reuse that state
|
||||
- `auth.spec.ts`, `public.spec.ts`, and `shared-session.spec.ts` explicitly clear storage so those tests stay truly unauthenticated
|
||||
|
||||
## Local prerequisites
|
||||
|
||||
1. PostgreSQL must be running
|
||||
2. `backend/venv` should exist with backend dependencies installed
|
||||
3. frontend dependencies must be installed
|
||||
4. Playwright Chromium must be installed once
|
||||
|
||||
## First-time setup
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
npx playwright install chromium
|
||||
```
|
||||
|
||||
## Run the suite
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm run test:e2e
|
||||
```
|
||||
|
||||
Useful variants:
|
||||
|
||||
```bash
|
||||
npm run test:e2e -- --list
|
||||
npm run test:e2e:headed
|
||||
npm run test:e2e:ui
|
||||
npm run test:e2e:debug
|
||||
```
|
||||
|
||||
## Backend boot behavior
|
||||
|
||||
The Playwright config starts the backend automatically. It will:
|
||||
|
||||
1. run Alembic migrations
|
||||
2. seed test users
|
||||
3. launch Uvicorn on `127.0.0.1:8000`
|
||||
|
||||
Then it builds and serves the frontend via `vite preview` on `127.0.0.1:4173`.
|
||||
|
||||
## Default test credentials
|
||||
|
||||
- Email: `teamadmin@resolutionflow.example.com`
|
||||
- Password: `TestPass123!`
|
||||
|
||||
Override them with:
|
||||
|
||||
- `PLAYWRIGHT_TEST_EMAIL`
|
||||
- `PLAYWRIGHT_TEST_PASSWORD`
|
||||
|
||||
## Common local issue
|
||||
|
||||
If the suite fails before tests start with a database connection error, PostgreSQL is not running or the Playwright DB env vars do not point at a reachable database.
|
||||
Reference in New Issue
Block a user