Skip to main content

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

  1. Backend en marxa: cd backend && mvn spring-boot:run
  2. Frontend en marxa: cd frontend && npm run dev
  3. Usuari autenticat amb rol TEACHER o ADMIN
  4. 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
1Navegar a /dances/newEs mostra el formulari de creació de ball
2Emplenar camps obligatoris: nom, nivell, counts, wallsCamps acceptats
3A la secció "Cançons vinculades", cercar i afegir 2 cançonsLes cançons apareixen a la llista
4La primera cançó hauria de ser PRIMARY per defecteBadge "Principal" visible
5Intentar marcar les dues com a PRIMARY❌ Error de validació: "Només pot haver-hi una cançó principal"
6Deixar només 1 com a PRIMARY i l'altra com ALTERNATIVE✅ Validació passa
7Clicar "Crear ball"Ball creat, redirecció a /dances/{id}
8A la pàgina de detall, verificar les cançonsMostra badge "Principal" per la PRIMARY i "Alternativa" per l'altra
9Clicar "Edita ball"Formulari d'edició amb les cançons i roles correctes
10Canviar el role d'una cançó de PRIMARY a ALTERNATIVEL'altra es marca automàticament com PRIMARY
11Desar canvisCanvis 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
1Navegar a /dances/{id} d'un ball existentPàgina de detall visible
2Scroll fins a "Especificació tècnica"Si no existeix, es mostra CTA "Crear especificació"
3Clicar "Crear especificació"Es crea l'spec amb status DRAFT
4Verificar que apareixen els 3 blocs: Metadades, Components, Seqüència✅ Blocs visibles
5Afegir un component: tag="A1", nom="Vine left", counts=8Component afegit a la taula
6Afegir un segon component: tag="B1", nom="Jazz box", counts=8Segon component afegit
7Clicar "Desar components"✅ Notificació "Components desats"
8Clicar el botó "+" al component A1A1 s'afegeix a la seqüència
9Clicar el botó "+" al component B1B1 s'afegeix a la seqüència
10Clicar el botó "+" al component A1 de nouA1 s'afegeix una altra vegada
11Marcar el segon ítem (B1) com a "Restart"Checkbox marcat
12Clicar "Desar seqüència"✅ Notificació "Seqüència desada"
13Refrescar la pàgina (F5)Dades persistides: components i seqüència intactes
14Verificar 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
1Navegar a /dances/{id} amb spec i seqüènciaSpec visible amb components i seqüència
2A la taula de components, clicar 🗑️ per eliminar un component usat a la seqüènciaComponent eliminat de la llista local
3Clicar "Desar components"❌ Error 409 del backend
4Verificar que apareix alerta vermellaMissatge: "No es pot eliminar un component que està en ús a la seqüència"
5El component NO es desa com eliminatComponent encara existeix si es refresca
6Primer eliminar el component de la seqüènciaBotó 🗑️ a la seqüència
7Desar seqüència✅ Seqüència desada
8Ara eliminar el component del catàleg i desar✅ Component eliminat correctament

Resultat

  • PASS
  • FAIL — Notes: _______________

Resum d'execució

DataExecutorTest 1Test 2Test 3Notes
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