4.7 KiB
4.7 KiB
TODO — completamento suite di test
Checkpoint: branch test-suite-repair, commit bf9a6f8.
Contesto
La suite era allineata a una vecchia forma dello stato (sp.punt / sp.set /
sp.servHome) e a una vecchia architettura e2e (controller su :3001).
Baseline iniziale: 77/170 test Vitest falliti, tutti gli e2e rotti.
Nel commit bf9a6f8:
- Vitest riportato a 212/212 verde (verificato con
npx vitest run). - e2e migrati parzialmente (porte + viewport + reset→config), NON verificati verdi.
✅ Fatto (verificato)
tests/unit/gameState.test.js— riscritto con helper che derivano punteggio/set/servizio dalla striscia; aggiunto bloccoformInizio.src/server-utils.js—getNetworkIPs(nets)con interfacce iniettabili +printServerInfo(port, ips)con IP iniettabili (deterministico anche su WSL); filtro LAN unificato (esclude127./169.254./172.). Test riscritto.tests/integration/websocket.test.js+tests/stress/websocket-load.test.js— punteggio letto viapunteggio(striscia).tests/component/ControllerPage.test.js+DisplayPage.test.js— forzato layout mobile (viewport portrait), punteggi via striscia; aggiunto test REFERTO.- Nuovi unit/integration:
referto.test.js,persist.test.js(mockfs),wsMixin.test.js,integration/server.test.js(routing). src/referto.js— estrattabuildRefertoHtml(state, now)pura;generaRefertoresta wrapper conwindow.open/print.server.js— estratticreateApp()/startServer(); avvio solo se entrypoint.
⚠️ Da finire / verificare — e2e Playwright
Gli e2e NON sono stati eseguiti fino a verde (run lenti). Punto di ripartenza.
Fix già applicati nei 6 spec
:3001→:3000/controller.setViewportSize({ width: 390, height: 844 })prima di ognigotocontroller (su desktop renderizza la dashboard landscape.e-dash, ma i test cercano il markup mobile.team-score/.team-pts/.btn-set).- Il reset ora chiude il dialog di configurazione che
doReset()apre in automatico. game-simulation: a 25 gestito il modal automatico "SET VINTO" con "VAI AL SET SUCCESSIVO".
Da verificare / probabili fix residui
full-match.spec.cjs— RISCHIO ALTO. I test arrivano a 25/15 → scatta il modal automatico (squadraVincente). Le asserzioni che cliccano.btn-seto.team-scoreDOPO i 25 punti vengono bloccate dall'overlay del modal. Da rivedere il flusso (usare i bottoni del modal).game-simulation.spec.cjs— verificare il nuovo finale col modal.game-operations.spec.cjs— verificare flusso cambi/toggle/config doporesetGame(config ora chiuso).basic-flow.spec.cjs— probabile OK, confermare.accessibility.spec.cjs— rieseguire axe sul markup attuale.visual-regression.spec.cjs— FALLIRÀ: snapshot baseline della vecchia UI. Rigenerare connpm run test:e2e -- --update-snapshotsDOPO aver sistemato il resto.
Note importanti
- Stato e2e condiviso e persistente (
.segnapunti/state.json): i test dipendono dall'ordine e dal reset. Partire da stato pulito. - I 3 progetti Playwright (chromium, firefox, Mobile Chrome) girano in serie
(
workers: 1).
⬜ Non ancora iniziato
tests/e2e/referto.spec.cjs(nuovo) — portare una partita 2/3 a fine match, intercettare il popup conpage.waitForEvent('popup')dopo il click su REFERTO, verificare nomi squadre + punteggi. Stubbarewindow.print(viaaddInitScript) perché può bloccare.- Documentazione:
README.md— sezione Controller: aggiungere il referto (PARTITA FINITA → referto stampabile/PDF, prototipo). Sezione Test: aggiungeretest:ui.CLAUDE.md— aggiungeresrc/referto.js(buildRefertoHtml+generaReferto), menzionarewsMixin.js/persist.js/server-utils.js; nota suformInizio.tests/README.md— correggere i conteggi obsoleti ("159 passed (159)", "6 files"); aggiungere referto / persist / wsMixin / routing server / spec referto.
Comandi utili
# Vitest (deve restare verde: 212/212)
npx vitest run
# e2e — partire da stato pulito + server attivo
rm -f .segnapunti/state.json
npm run serve # in un terminale a parte
# e2e mirati (chromium, dai più rischiosi)
npx playwright test --config=playwright.config.cjs --project=chromium tests/e2e/full-match.spec.cjs
npx playwright test --config=playwright.config.cjs --project=chromium tests/e2e/game-simulation.spec.cjs
# rigenerare gli snapshot visual DOPO aver sistemato la UI dei test
npm run test:e2e -- --update-snapshots
# suite e2e completa (3 browser, lenta)
npm run test:e2e