From 923d1fe762d33350571db149671bfe26038d1963 Mon Sep 17 00:00:00 2001 From: Davide Grilli Date: Thu, 3 Sep 2026 10:17:07 +0200 Subject: [PATCH] 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. --- test/unit/palloni-core.test.ts | 8 +++++--- test/unit/scout-export.test.ts | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/test/unit/palloni-core.test.ts b/test/unit/palloni-core.test.ts index 4c96f93..d6217c8 100644 --- a/test/unit/palloni-core.test.ts +++ b/test/unit/palloni-core.test.ts @@ -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); diff --git a/test/unit/scout-export.test.ts b/test/unit/scout-export.test.ts index bd98a69..17b3225 100644 --- a/test/unit/scout-export.test.ts +++ b/test/unit/scout-export.test.ts @@ -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");