- schema-profili: il test pretendeva che lo slot g1 fosse libero, ma in produzione è collegato a un giocatore vero; ora verifica che il tentativo anonimo non cambi il valore. - rosa: il default dei voti MVP era fuori da useMemo e faceva ricalcolare la rosa a ogni render finché i voti non erano caricati. - test dei badge, profili-core, push-sw, scout-stato: tipi allineati al codice (MappaPresenze, nascita da M18, renotify, narrowing di deepEqual). - vite.config: tipizzato come UserConfig e rimosso esbuild.keepNames, ignorato da Vite 8 che non usa più esbuild. - formattazione Prettier in BarraSottosezioni e classifica. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
27 lines
1.2 KiB
TypeScript
27 lines
1.2 KiB
TypeScript
/** Check dello stato condiviso dello Scout Live: `bun test/unit/scout-stato.test.ts`. */
|
|
import assert from "node:assert/strict";
|
|
import { SCOUT_STATO_KEY, statoIniziale } from "@/lib/scout-stato";
|
|
|
|
// --- statoIniziale: parte vuoto, con avversario e campo memorizzati -----------
|
|
const stato = statoIniziale("Avversari", true);
|
|
// Confronta una copia: deepEqual restringerebbe `stato` al letterale, con `azioni: never[]`.
|
|
assert.deepEqual({ ...stato }, { azioni: [], setChiusi: [], avversario: "Avversari", casa: true });
|
|
|
|
const trasferta = statoIniziale("Altra Squadra", false);
|
|
assert.equal(trasferta.casa, false);
|
|
assert.deepEqual(trasferta.azioni, [], "ogni chiamata parte da una lista vuota indipendente");
|
|
|
|
// Le liste non devono essere condivise tra due stati distinti.
|
|
stato.azioni.push({ id: "a1", tipo: "attacco", set: 1, ts: 0 });
|
|
assert.deepEqual(trasferta.azioni, [], "modificare uno stato non tocca l'altro");
|
|
|
|
// --- SCOUT_STATO_KEY: chiave stabile per React Query --------------------------
|
|
assert.deepEqual(SCOUT_STATO_KEY("evt-1"), ["scout-stato", "evt-1"]);
|
|
assert.notDeepEqual(
|
|
SCOUT_STATO_KEY("evt-1"),
|
|
SCOUT_STATO_KEY("evt-2"),
|
|
"chiavi diverse per eventi diversi",
|
|
);
|
|
|
|
console.log("scout-stato: ok");
|