13 — Plan de QA y pruebas — VOLTA
1. Alcance
Validar el vertical slice L1: form público, success, login coach, inbox, detalle, estados, empty/error, seed Neon.
2. Entorno
3. Smoke tests (obligatorios)
| ID | Caso | Pasos | Esperado |
|---|
| S1 | Seed | prisma:seed | Log VOLTA seed OK |
| S2 | Login OK | POST /api/auth/login | 200 + accessToken |
| S3 | Login KO | password mal | 401 |
| S4 | Create public | POST /api/requests body válido | 201 + code VO-… + status NEW |
| S5 | List sin token | GET /api/requests | 401 |
| S6 | List con token | Authorization Bearer | 200 array ≥1 |
| S7 | Stats | GET /api/requests/stats/summary | total/open/byStatus |
| S8 | Detail | GET /api/requests/:id | 200 |
| S9 | Patch status | PATCH { "status": "CONTACTED" } | 200 status actualizado |
| S10 | Web home | abrir / | hero + CTA |
| S11 | Web join E2E | form → success | código visible |
| S12 | Web inbox | login → /inbox | cards seed |
4. Casos funcionales ampliados
Público
| ID | Caso | Esperado |
|---|
| P1 | Email inválido en join | 400 / error UI |
| P2 | classType fuera de enum | 400 |
| P3 | notes omitidas | notes "" |
| P4 | phone omitido | null/ausente OK |
Coach
| ID | Caso | Esperado |
|---|
| C1 | Token basura | 401 en list |
| C2 | id inexistente | 404 |
| C3 | status inválido | 400 |
| C4 | Transición NEW→CONFIRMED | 200 |
| C5 | Logout limpia sesión | list falla o redirect login |
UI estados
| ID | Caso | Esperado |
|---|
| U1 | Inbox vacío (DB clean sin seed) | empty copy |
| U2 | API parada | error + reintentar |
| U3 | Responsive 390px join | usables CTAs |
5. Regresión visual (manual)
| Pantalla | Check |
|---|
| Home | Syne H1, lime CTA, hero no roto |
| Join | labels, select tipos |
| Success | código monospaced o bold |
| Login | split/form legible |
| Inbox | badges status + stats |
| Detail | acciones de estado |
6. Seguridad smoke
Ver 11-privacy-security.md checks S1–S5.
7. Accesibilidad smoke
Ver 10-accessibility.md A1–A8.
8. Criterios de salida (release demo)
9. Automatización futura
| Capa | Tool | Prioridad |
|---|
| API e2e | supertest / Playwright API | P1 L1+ |
| UI e2e | Playwright | P1 L1+ |
| a11y | axe | P2 |
| CI | GitHub Actions | P2 |
10. Datos de prueba recomendados
Además del seed:
| Nombre | Clase | Notas |
|---|
| Test User | OPEN | “prueba QA” |
| Ana Kids | KIDS | teléfono relleno |