Copre presenze, calendario e guardia admin con nuovi test.

Confrontando le funzioni esportate di src/lib/ con i riferimenti in test/,
le uniche funzioni pure ancora scoperte erano i conteggi presenze, tre
funzioni del calendario, i titoli MVP e i rifiuti della guardia notifiche.

- unit: contaPresenzeGiocatore e totaliEventiGiocatore, compleanniEventi,
  convocatiEvento, eventoVuoto, mvpVintiPerGiocatore, e il nuovo
  auth-route.test.ts sui 401 di richiediAdmin (DD-024);
- integration/permessi: badge_social_voti, che mancava tra le tabelle di M11,
  e le deroghe "Gli admin gestiscono tutti/e ...", mai verificate finora.

Due modifiche al codice servivano per poter scrivere i test:

- presenze.ts: i conteggi leggevano la data da dataOggi() e non erano
  verificabili; ora accettano oggi come parametro opzionale, come già
  facevano serieConsecutiva e serieConferme. Toglie anche la dipendenza
  dall'orologio che avrebbe cambiato i risultati dei test delle serie dal
  10 settembre in poi;
- auth-route.server.ts: "Bearer .." passava il pre-check con tre segmenti
  vuoti e arrivava fino alla chiamata di rete; ora i segmenti devono essere
  non vuoti.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-06 19:03:18 +02:00
co-authored by Claude Opus 5
parent 3d8cb22235
commit 752b300474
9 changed files with 224 additions and 18 deletions
+12
View File
@@ -6,6 +6,18 @@ qui: sta in [ROADMAP.md](ROADMAP.md).
## Versione attuale — agosto 2026
### La suite copre i conteggi presenze, il calendario e la guardia delle notifiche
- Nuovi check unitari su `contaPresenzeGiocatore`/`totaliEventiGiocatore` (numeratore e
denominatore delle statistiche), su `compleanniEventi`, `convocatiEvento` ed `eventoVuoto`,
su `mvpVintiPerGiocatore` e sui rifiuti `401` di `richiediAdmin` (DD-024).
- I test dei permessi coprono ora anche `badge_social_voti` e le deroghe
«Gli admin gestiscono tutti/e …» introdotte da M11.
- Perché servivano modifiche al codice: le funzioni di conteggio presenze leggevano la data
di oggi dall'orologio e non erano verificabili — ora accettano `oggi` come parametro,
come già facevano le serie; `richiediAdmin` scarta anche i token con segmenti vuoti
(`Bearer ..`), che prima arrivavano fino alla chiamata di rete.
### Le notifiche push arrivano anche ad app chiusa
- Il testo della notifica viaggia ora cifrato **dentro** la push (`aes128gcm`, RFC 8291)