Aggiunge unit test per i moduli lib rimasti scoperti
Copre la logica pura isolabile di avatar-store, error-capture, error-page, lovable-error-reporting, profili (validazione upload), push-client (guardie senza DOM), scout-stato e webpush.server (firma JWT VAPID con chiavi P-256 generate al volo, fetch intercettato). Alza i file di src/lib coperti da 19 a 28 su 37, senza introdurre nuove dipendenze. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
/**
|
||||
* Check dei vincoli sui file del Profilo Giocatore: `bun test/unit/profili.test.ts`.
|
||||
* `caricaFile` valida tipo e dimensione prima di qualunque upload: qui verifichiamo
|
||||
* solo questi due rifiuti, che non richiedono rete né storage.
|
||||
*/
|
||||
import assert from "node:assert/strict";
|
||||
import { caricaFile } from "@/lib/profili";
|
||||
|
||||
// --- formato non ammesso: rifiutato prima di toccare lo storage --------------
|
||||
const testoNonAmmesso = new File(["contenuto"], "documento.txt", { type: "text/plain" });
|
||||
await assert.rejects(
|
||||
() => caricaFile("g1", "documento-fronte", testoNonAmmesso),
|
||||
/Formato non ammesso: usa JPG, PNG, WEBP o PDF\./,
|
||||
);
|
||||
|
||||
// --- file troppo grande: rifiutato anche con un formato valido ---------------
|
||||
const troppoGrande = new File([new Uint8Array(8 * 1024 * 1024 + 1)], "foto.jpg", {
|
||||
type: "image/jpeg",
|
||||
});
|
||||
await assert.rejects(
|
||||
() => caricaFile("g1", "foto", troppoGrande),
|
||||
/File troppo grande: massimo 8 MB\./,
|
||||
);
|
||||
|
||||
console.log("profili: ok");
|
||||
Reference in New Issue
Block a user