Smoke Tests E2E — Checklist Manual
Aquest document descriu els tests E2E smoke per validar els fluxos crítics de la plataforma.
Executar manualment abans de cada release o després de canvis significatius.
Prerequisits
- Backend en marxa:
cd backend && mvn spring-boot:run - Frontend en marxa:
cd frontend && npm run dev - Usuari autenticat amb rol TEACHER o ADMIN
- Base de dades amb almenys 1 cançó existent
Test 1: Crear/Editar Dance amb cançons i role PRIMARY
Objectiu
Verificar que es pot crear un ball amb cançons, marcar exactament 1 com a PRIMARY, i que es visualitza correctament.
Passos
| # | Acció | Resultat esperat |
|---|---|---|
| 1 | Navegar a /dances/new | Es mostra el formulari de creació de ball |
| 2 | Emplenar camps obligatoris: nom, nivell, counts, walls | Camps acceptats |
| 3 | A la secció "Cançons vinculades", cercar i afegir 2 cançons | Les cançons apareixen a la llista |
| 4 | La primera cançó hauria de ser PRIMARY per defecte | Badge "Principal" visible |
| 5 | Intentar marcar les dues com a PRIMARY | ❌ Error de validació: "Només pot haver-hi una cançó principal" |
| 6 | Deixar només 1 com a PRIMARY i l'altra com ALTERNATIVE | ✅ Validació passa |
| 7 | Clicar "Crear ball" | Ball creat, redirecció a /dances/{id} |
| 8 | A la pàgina de detall, verificar les cançons | Mostra badge "Principal" per la PRIMARY i "Alternativa" per l'altra |
| 9 | Clicar "Edita ball" | Formulari d'edició amb les cançons i roles correctes |
| 10 | Canviar el role d'una cançó de PRIMARY a ALTERNATIVE | L'altra es marca automàticament com PRIMARY |
| 11 | Desar canvis | Canvis persistits correctament |
Resultat
- PASS
- FAIL — Notes: _______________
Test 2: Crear Line Dance Spec, components i seqüència
Objectiu
Verificar el flux complet de creació d'especificació tècnica amb components i seqüència.
Passos
| # | Acció | Resultat esperat |
|---|---|---|
| 1 | Navegar a /dances/{id} d'un ball existent | Pàgina de detall visible |
| 2 | Scroll fins a "Especificació tècnica" | Si no existeix, es mostra CTA "Crear especificació" |
| 3 | Clicar "Crear especificació" | Es crea l'spec amb status DRAFT |
| 4 | Verificar que apareixen els 3 blocs: Metadades, Components, Seqüència | ✅ Blocs visibles |
| 5 | Afegir un component: tag="A1", nom="Vine left", counts=8 | Component afegit a la taula |
| 6 | Afegir un segon component: tag="B1", nom="Jazz box", counts=8 | Segon component afegit |
| 7 | Clicar "Desar components" | ✅ Notificació "Components desats" |
| 8 | Clicar el botó "+" al component A1 | A1 s'afegeix a la seqüència |
| 9 | Clicar el botó "+" al component B1 | B1 s'afegeix a la seqüència |
| 10 | Clicar el botó "+" al component A1 de nou | A1 s'afegeix una altra vegada |
| 11 | Marcar el segon ítem (B1) com a "Restart" | Checkbox marcat |
| 12 | Clicar "Desar seqüència" | ✅ Notificació "Seqüència desada" |
| 13 | Refrescar la pàgina (F5) | Dades persistides: components i seqüència intactes |
| 14 | Verificar que el comptador mostra "24 comptes" | 8+8+8 = 24 |
Resultat
- PASS
- FAIL — Notes: _______________
Test 3: Intentar eliminar component en ús (409 Conflict)
Objectiu
Verificar que la UI mostra error quan s'intenta eliminar un component que està en ús a la seqüència.
Prerequisits
- Tenir un ball amb spec, almenys 1 component, i seqüència que usa aquest component
Passos
| # | Acció | Resultat esperat |
|---|---|---|
| 1 | Navegar a /dances/{id} amb spec i seqüència | Spec visible amb components i seqüència |
| 2 | A la taula de components, clicar 🗑️ per eliminar un component usat a la seqüència | Component eliminat de la llista local |
| 3 | Clicar "Desar components" | ❌ Error 409 del backend |
| 4 | Verificar que apareix alerta vermella | Missatge: "No es pot eliminar un component que està en ús a la seqüència" |
| 5 | El component NO es desa com eliminat | Component encara existeix si es refresca |
| 6 | Primer eliminar el component de la seqüència | Botó 🗑️ a la seqüència |
| 7 | Desar seqüència | ✅ Seqüència desada |
| 8 | Ara eliminar el component del catàleg i desar | ✅ Component eliminat correctament |
Resultat
- PASS
- FAIL — Notes: _______________
Resum d'execució
| Data | Executor | Test 1 | Test 2 | Test 3 | Notes |
|---|---|---|---|---|---|
| YYYY-MM-DD | [nom] | ⬜ | ⬜ | ⬜ |
Llegenda: ✅ PASS | ❌ FAIL | ⬜ No executat
Script de proves API (opcional)
Per executar proves ràpides de l'API sense UI, veure: backend/src/test/scripts/smoke-api.sh