Aggiorna i test per le nuove firme con rosa esplicita

completaTurni() e csvScoutMatch() prendono ora la rosa come parametro
invece di leggerla dalla lista statica di crapp-data.ts.
This commit is contained in:
2026-09-03 10:17:07 +02:00
parent 4c0ea66126
commit 923d1fe762
2 changed files with 9 additions and 7 deletions
+5 -3
View File
@@ -14,6 +14,8 @@ import {
oggiISO,
} from "@/lib/palloni-core";
const rosa = giocatori.map((g) => ({ id: g.id, nome: g.nome }));
const evento = (id: string, data: string, tipo: Evento["tipo"] = "allenamento"): Evento => ({
id,
tipo,
@@ -59,7 +61,7 @@ assert.deepEqual(
);
// --- completaTurni: assegna i mancanti, rispetta quelli già decisi -----------
const turni = completaTurni({ e2: "g5" }, eventi);
const turni = completaTurni({ e2: "g5" }, eventi, rosa);
assert.equal(turni["e2"], "g5", "il turno già assegnato non viene toccato");
assert.equal(Object.keys(turni).length, 3, "tutti gli eventi hanno un incaricato");
assert.ok(
@@ -71,7 +73,7 @@ assert.notEqual(turni["e1"], turni["e3"], "non tocca due volte di fila alla stes
const molti = Array.from({ length: giocatori.length + 2 }, (_, i) =>
evento(`x${i}`, `2026-10-${String(i + 1).padStart(2, "0")}`),
);
const rotazione = conteggioTurni(completaTurni({}, molti));
const rotazione = conteggioTurni(completaTurni({}, molti, rosa));
const carichi = Object.values(rotazione);
assert.equal(
Math.max(...carichi) - Math.min(...carichi),
@@ -85,7 +87,7 @@ assert.equal(
);
// Un turno salvato per un giocatore non più in rosa non deve rompere il conteggio.
const conFantasma = completaTurni({ e1: "gXX" }, eventi);
const conFantasma = completaTurni({ e1: "gXX" }, eventi, rosa);
assert.equal(conFantasma["e1"], "gXX", "il turno storico resta com'è");
assert.equal(Object.keys(conFantasma).length, 3);
+4 -4
View File
@@ -31,7 +31,7 @@ const match: ScoutMatch = {
azioni: [a("attacco", g1.id), a("ace", g1.id, 2), a("errore", g2.id, 2), a("punto_avv")],
};
const csv = csvScoutMatch(match);
const csv = csvScoutMatch(match, giocatori);
const righe = csv.split("\n");
// --- intestazione ------------------------------------------------------------
@@ -66,15 +66,15 @@ assert.ok(
);
// --- trasferta e match vuoto -------------------------------------------------
const fuori = csvScoutMatch({ ...match, casa: false, avversario: "Ospiti" });
const fuori = csvScoutMatch({ ...match, casa: false, avversario: "Ospiti" }, giocatori);
assert.equal(fuori.split("\n")[0], "Partita;Ospiti;vs;CRAP Volley", "in trasferta si invertono");
const vuoto = csvScoutMatch({ ...match, azioni: [], parziali: [] });
const vuoto = csvScoutMatch({ ...match, azioni: [], parziali: [] }, giocatori);
assert.ok(vuoto.includes("Data;2026-09-01"), "un match senza azioni resta esportabile");
assert.ok(!vuoto.includes(`;${g1.nome};`), "nessun totale senza azioni");
// Le virgolette nel testo vanno raddoppiate (regola CSV).
const conVirgolette = csvScoutMatch({ ...match, avversario: 'Team "X"' });
const conVirgolette = csvScoutMatch({ ...match, avversario: 'Team "X"' }, giocatori);
assert.ok(conVirgolette.includes('"Team ""X"""'));
console.log("scout-export: ok");