docs: allinea README, CLAUDE.md e guida ai test allo stato attuale

- README: referto tra le funzionalità del controller; comando test:ui e aree
  coperte dalle suite
- CLAUDE.md: referto.js (buildRefertoHtml/generaReferto), wsMixin/persist/
  server-utils, createApp/startServer; nota su formInizio e stato derivato
  dalla striscia
- tests/README: conteggi aggiornati (212 Vitest / 75 e2e) e nuove suite
This commit is contained in:
2026-06-21 18:04:13 +02:00
parent c73267d347
commit 1ab57654ad
3 changed files with 36 additions and 6 deletions
+19 -4
View File
@@ -90,10 +90,18 @@ Esempi reali nel progetto:
- cambio palla
- vittoria set con regola dei 2 punti di scarto
- reset stato
- `formInizio` (snapshot formazione di partenza del set)
- generazione del referto (`buildRefertoHtml`)
- persistenza stato su disco (`persist.js`, con `fs` mockato)
- utility di rete (`server-utils.js`)
Quando falliscono:
- quasi sempre c'e un problema nella logica core
> Nota: punteggio, set e servizio NON sono campi dello stato: si ricavano dalla
> `striscia` con `punteggio` / `setVinti` / `servizio`. Nei test si impostano gli
> scenari costruendo la `striscia`, non scrivendo `sp.punt`/`sp.set`.
### 5.2 Integration (`tests/integration`)
Cosa sono:
@@ -107,6 +115,7 @@ Esempi reali nel progetto:
- broadcast stato ai client
- validazione input malformati
- autorizzazioni (solo controller puo inviare certe azioni)
- routing del server Express (`createApp`: rotte display/controller/asset)
Quando falliscono:
- spesso c'e problema nel protocollo messaggi o nei controlli di ruolo
@@ -124,6 +133,8 @@ Esempi reali nel progetto:
- stato connessione
- click bottoni controller
- dialog reset/config/cambi
- bottone REFERTO nel dialog PARTITA FINITA
- client WebSocket (`wsMixin`: connessione, riconnessione, `sendWs`)
Quando falliscono:
- spesso hai rotto template, computed, metodi o binding
@@ -152,15 +163,19 @@ A cosa servono:
- verificano che Controller e Display funzionino davvero insieme
File principali:
- `helpers.cjs`: helper condivisi (`openController`/`openDisplay`/`resetGame`/`addPoints`)
- `basic-flow.spec.cjs`: flusso base Controller <-> Display
- `game-operations.spec.cjs`: reset, config, toggle, cambi
- `game-simulation.spec.cjs`: simulazione partita
- `full-match.spec.cjs`: scenari partita completi
- `referto.spec.cjs`: generazione referto a PARTITA FINITA
- `accessibility.spec.cjs`: controlli accessibilita con axe
- `visual-regression.spec.cjs`: confronto screenshot con baseline
Nota importante:
Note importanti:
- gli E2E sono configurati in seriale (`workers: 1`) per evitare interferenze sullo stato partita condiviso.
- il controller viene aperto in viewport portrait (layout "mobile") tramite `openController`: in landscape userebbe la dashboard estesa con selettori diversi.
- lo stato è UNICO e persistente sul server: ogni test inizia con `resetGame`, che azzera e reimposta i nomi di default per garantire determinismo.
## 6) Come leggere i risultati
@@ -169,8 +184,8 @@ Nota importante:
Caso OK (verde):
```text
Test Files 6 passed (6)
Tests 159 passed (159)
Test Files 10 passed (10)
Tests 212 passed (212)
```
Significa:
@@ -187,7 +202,7 @@ Caso KO (rosso):
Caso OK:
```text
72 passed
75 passed
```
Caso KO: