Completa la copertura test del badge Sherpa dei palloni e ne documenta il comportamento
Nessun bug nella logica di calcolo: soglie 3/6/10 corrette, gradoRaggiunto()/ statoBadge() si comportano come per gli altri badge da contatore. Trovato però un comportamento reale ma non ovvio (già accennato in palloni.md, mai dimostrato con dati veri): il conteggio del badge include anche le proposte automatiche di completaTurni() non ancora confermate da nessuno, non solo i turni salvati in turni_palloni. Aggiunti test unit sulle soglie (badges.test.ts) e un nuovo end-to-end (palloni-badge.test.ts) che scrive eventi/turni parzialmente confermati sul database locale e verifica l'intera pipeline fetchTurni() -> completaTurni() -> conteggioTurni() -> statoBadge(), incluso il caso "evento futuro non conta". docs/modules/badge.md aggiornato con la pipeline, la copertura test e il limite noto. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -90,6 +90,21 @@ assert.equal(
|
||||
"sopra la soglia minima, valgono le normali soglie di grado",
|
||||
);
|
||||
|
||||
// --- palloni: soglie 3 / 6 / 10 -----------------------------------------------
|
||||
const palloniDef = badgeDefs.find((b) => b.id === "palloni")!;
|
||||
assert.equal(gradoRaggiunto(palloniDef, 2), null, "sotto la prima soglia nessun grado");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 3), "bronzo", "la soglia è inclusiva");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 5), "bronzo");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 6), "argento");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 9), "argento");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 10), "oro");
|
||||
assert.equal(gradoRaggiunto(palloniDef, 99), "oro", "oltre l'oro resta oro");
|
||||
assert.equal(
|
||||
statoBadge(palloniDef, g({ palloni: 5 })).progresso,
|
||||
83,
|
||||
"5 turni su 6 per l'argento: 83%",
|
||||
);
|
||||
|
||||
// --- badgeGiocatore ----------------------------------------------------------
|
||||
assert.equal(badgeGiocatore(g()).length, badgeDefs.length, "i badge normali sono sempre tutti");
|
||||
assert.ok(
|
||||
|
||||
Reference in New Issue
Block a user