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
|
* 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
|
* mese", "tutti rispondono alle convocazioni") e quelli la cui logica dipende da dati scritti
|
||||||
* su altre tabelle ("250 presenze complessive" via `contaPresenzeGiocatore()`, "media pagelle
|
* 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
|
* 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
|
* 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 matchId = `${PREFISSO}-o12-m1`;
|
||||||
const [g1, g2, g3] = giocatori;
|
const [g1, g2, g3] = giocatori;
|
||||||
// 7 + 7 + 9 = 23 -> media 7.666... arrotondata a 7.7. Vincoli reali della tabella:
|
// 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");
|
assert.equal(pagelleReali.length, 3, "i tre voti sono stati scritti e riletti dal database");
|
||||||
|
|
||||||
const o12 = obiettiviSquadra(giocatori, { eventi: [], presenze: {}, pagelle: pagelleReali }).find(
|
const obiettivi = obiettiviSquadra(giocatori, {
|
||||||
(o) => o.id === "o12",
|
eventi: [],
|
||||||
)!;
|
presenze: {},
|
||||||
assert.equal(o12.valore, 7.7, "media dei voti reali, arrotondata a una cifra decimale");
|
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 {
|
} finally {
|
||||||
await rest(`risposte_presenze?evento_id=like.${PREFISSO}*`, { method: "DELETE" });
|
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, "o1").valore, 0, "nessun evento nel mese: 0%, non NaN");
|
||||||
assert.equal(trova(vuoti, "o2").valore, 0);
|
assert.equal(trova(vuoti, "o2").valore, 0);
|
||||||
assert.equal(trova(vuoti, "o12").valore, 0, "nessuna pagella: media 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(
|
assert.ok(
|
||||||
vuoti.every((o) => Number.isFinite(o.valore)),
|
vuoti.every((o) => Number.isFinite(o.valore)),
|
||||||
"nessun valore NaN o infinito",
|
"nessun valore NaN o infinito",
|
||||||
@@ -294,6 +295,12 @@ assert.equal(
|
|||||||
7,
|
7,
|
||||||
"la media aggrega i voti di più partite, non guarda solo una match_id",
|
"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 ------------------------------------------------------
|
// --- progressoObiettivo ------------------------------------------------------
|
||||||
const o = (valore: number, target: number): ObiettivoSquadra => ({
|
const o = (valore: number, target: number): ObiettivoSquadra => ({
|
||||||
|
|||||||
Reference in New Issue
Block a user