Files
CRAPP/test/unit/profili.test.ts
davideandClaude Sonnet 5 ff45b2379c 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>
2026-09-02 11:34:09 +02:00

26 lines
975 B
TypeScript

/**
* 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");