Files
resolutionflow/frontend/e2e/README.md
2026-03-16 02:29:22 -04:00

87 lines
2.2 KiB
Markdown

# 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.