Corregge il dettaglio MVP in classifica: solo partite, non tutti gli eventi

Il sottotitolo "N partite giocate" per il criterio MVP usava totaliEventiGiocatore(),
che conta anche gli allenamenti: un numero fuorviante perché l'MVP si vota solo alle
partite del calendario interno (eventi_app), non a quelle del sito CSI. Aggiunge
contaPartiteGiocate() (presenze.ts) e Giocatore.partiteGiocate.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-09 11:02:38 +02:00
co-authored by Claude Sonnet 5
parent 15f058f760
commit 8353761b6e
7 changed files with 60 additions and 9 deletions
+14
View File
@@ -3,6 +3,7 @@ import assert from "node:assert/strict";
import type { Evento } from "@/lib/eventi";
import {
conRisposta,
contaPartiteGiocate,
contaPresenzeGiocatore,
destinatariSollecito,
serieConferme,
@@ -91,6 +92,19 @@ assert.equal(totaliEventiGiocatore("g1", eventi, OGGI), 5, "gli eventi futuri no
assert.equal(contaPresenzeGiocatore("g2", eventi, presenze, OGGI), 0, "chi non risponde è a zero");
assert.equal(totaliEventiGiocatore("g2", eventi, OGGI), 5, "il denominatore è uguale per tutti");
// contaPartiteGiocate esclude gli allenamenti: su 5 eventi passati (4 allenamenti, 1 partita
// p1, presente), conta solo p1.
assert.equal(
contaPartiteGiocate("g1", eventi, presenze, OGGI),
1,
"solo la partita p1: gli allenamenti non contano come partite giocate",
);
assert.equal(
contaPresenzeGiocatore("g1", eventi, presenze, OGGI, "allenamento"),
3,
"contaPresenzeGiocatore con tipo esplicito filtra come contaPartiteGiocate ma per allenamenti",
);
// Solo partite e allenamenti: compleanni e altri eventi restano fuori.
const conAltri: Evento[] = [
...eventi,
+3 -3
View File
@@ -28,7 +28,7 @@ assert.deepEqual(classificaRank([0, 0]), [1, 1], "parità anche a valore zero");
// --- dettaglioClassifica: il sottotitolo segue il criterio selezionato -------
const g = { streak: 12, votiPagella: 18, totaliEventi: 22, cacche: 3, seriePalloni: 4 };
const g = { streak: 12, votiPagella: 18, partiteGiocate: 15, cacche: 3, seriePalloni: 4 };
assert.equal(
dettaglioClassifica(g, "presenze"),
@@ -47,8 +47,8 @@ assert.equal(
);
assert.equal(
dettaglioClassifica(g, "mvp"),
"22 partite giocate",
"mvp: mostra le partite giocate, non le presenze consecutive",
"15 partite giocate",
"mvp: mostra le partite giocate (non gli eventi totali, che includerebbero gli allenamenti)",
);
assert.equal(
dettaglioClassifica(g, "cacchePartita"),