Calcoli di badge, obiettivi e percentuali spostati da route e componenti a src/lib
squadra: mediaPresenzeRosa, obiettiviCompletati, mediaProgressoObiettivi, quantiAlGrado; scout: percentualePiu; utils: percentuale (usata da profilo, RosaPresenze, CollezioneBadge). Test unitari per ciascuna. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
06c91149e7
commit
99265f6a1e
13 files changed
+106
-30
No files matched your search
@@ -13,6 +13,7 @@ import {
|
||||
mancanoPer,
|
||||
microcopyBadge,
|
||||
prossimoTraguardo,
|
||||
quantiAlGrado,
|
||||
segretiNascosti,
|
||||
statoBadge,
|
||||
tuttiBadge,
|
||||
@@ -247,4 +248,17 @@ assert.equal(
|
||||
"gli id dei badge sono unici",
|
||||
);
|
||||
|
||||
// --- quantiAlGrado: chi ha raggiunto almeno quel grado -----------------------------
|
||||
{
|
||||
const def = badgeDefs[0]!;
|
||||
const rosa = [g(), g(), g()];
|
||||
assert.equal(quantiAlGrado(def, [], "bronzo"), 0);
|
||||
const n = (grado: (typeof gradiOrdine)[number]) => quantiAlGrado(def, rosa, grado);
|
||||
assert.ok(
|
||||
n("bronzo") >= n("argento") && n("argento") >= n("oro"),
|
||||
"i gradi alti non superano i bassi",
|
||||
);
|
||||
assert.equal(n("bronzo"), rosa.filter((x) => gradoRaggiunto(def, def.valore(x)) !== null).length);
|
||||
}
|
||||
|
||||
console.log("badges: ok");
|
||||
Reference in new issue
Block a user