Completa la copertura test dell'obiettivo "200 pagelle compilate"
C'era una sola asserzione (2 pagelle -> 2), nessun caso vuoto esplicito e nessun integration test. Aggiunti il caso vuoto, il conteggio aggregato su più match_id, e l'assert su o13 nell'integration test già scritto per la media pagelle (stessi voti reali scritti su pagelle_voti, zero setup extra). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
* Copre gli obiettivi con scadenza/mese dinamici ("presenze del mese", "evento di squadra al
|
||||
* mese", "tutti rispondono alle convocazioni") e quelli la cui logica dipende da dati scritti
|
||||
* su altre tabelle ("250 presenze complessive" via `contaPresenzeGiocatore()`, "media pagelle
|
||||
* da 7.5" via `pagelle_voti`).
|
||||
* da 7.5" e "200 pagelle compilate" via `pagelle_voti`).
|
||||
*
|
||||
* I test unitari (`test/unit/obiettivi.test.ts`) verificano `obiettiviSquadra()` come funzione
|
||||
* pura, con un `ContestoObiettivi` costruito a mano. Qui invece si scrivono righe vere su
|
||||
@@ -439,7 +439,7 @@ if (!locale) {
|
||||
},
|
||||
);
|
||||
|
||||
await prova("o12 media pagelle vere lette da pagelle_voti", async () => {
|
||||
await prova("o12/o13 media e conteggio pagelle vere lette da pagelle_voti", async () => {
|
||||
const matchId = `${PREFISSO}-o12-m1`;
|
||||
const [g1, g2, g3] = giocatori;
|
||||
// 7 + 7 + 9 = 23 -> media 7.666... arrotondata a 7.7. Vincoli reali della tabella:
|
||||
@@ -463,10 +463,21 @@ if (!locale) {
|
||||
}>;
|
||||
assert.equal(pagelleReali.length, 3, "i tre voti sono stati scritti e riletti dal database");
|
||||
|
||||
const o12 = obiettiviSquadra(giocatori, { eventi: [], presenze: {}, pagelle: pagelleReali }).find(
|
||||
(o) => o.id === "o12",
|
||||
)!;
|
||||
assert.equal(o12.valore, 7.7, "media dei voti reali, arrotondata a una cifra decimale");
|
||||
const obiettivi = obiettiviSquadra(giocatori, {
|
||||
eventi: [],
|
||||
presenze: {},
|
||||
pagelle: pagelleReali,
|
||||
});
|
||||
assert.equal(
|
||||
obiettivi.find((o) => o.id === "o12")!.valore,
|
||||
7.7,
|
||||
"media dei voti reali, arrotondata a una cifra decimale",
|
||||
);
|
||||
assert.equal(
|
||||
obiettivi.find((o) => o.id === "o13")!.valore,
|
||||
3,
|
||||
"conteggio dei voti reali scritti sul database",
|
||||
);
|
||||
});
|
||||
} finally {
|
||||
await rest(`risposte_presenze?evento_id=like.${PREFISSO}*`, { method: "DELETE" });
|
||||
|
||||
@@ -39,6 +39,7 @@ const vuoti = obiettiviSquadra(giocatori, contestoVuoto, OGGI_AGOSTO);
|
||||
assert.equal(trova(vuoti, "o1").valore, 0, "nessun evento nel mese: 0%, non NaN");
|
||||
assert.equal(trova(vuoti, "o2").valore, 0);
|
||||
assert.equal(trova(vuoti, "o12").valore, 0, "nessuna pagella: media 0");
|
||||
assert.equal(trova(vuoti, "o13").valore, 0, "nessuna pagella: conteggio 0");
|
||||
assert.ok(
|
||||
vuoti.every((o) => Number.isFinite(o.valore)),
|
||||
"nessun valore NaN o infinito",
|
||||
@@ -294,6 +295,12 @@ assert.equal(
|
||||
7,
|
||||
"la media aggrega i voti di più partite, non guarda solo una match_id",
|
||||
);
|
||||
assert.equal(
|
||||
trova(obiettiviSquadra(giocatori, { ...contestoVuoto, pagelle: pagellePiuPartite }), "o13")
|
||||
.valore,
|
||||
2,
|
||||
"il conteggio somma i voti di più match_id, non solo dell'ultima",
|
||||
);
|
||||
|
||||
// --- progressoObiettivo ------------------------------------------------------
|
||||
const o = (valore: number, target: number): ObiettivoSquadra => ({
|
||||
|
||||
Reference in New Issue
Block a user