2026-09-02 11:34:09 +02:00
|
|
|
/**
|
|
|
|
|
* 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 ---------------
|
2026-10-01 15:03:04 +02:00
|
|
|
const troppoGrande = new File([new Uint8Array(8 * 1024 * 1024 + 1)], "certificato.jpg", {
|
2026-09-02 11:34:09 +02:00
|
|
|
type: "image/jpeg",
|
|
|
|
|
});
|
|
|
|
|
await assert.rejects(
|
2026-10-01 15:03:04 +02:00
|
|
|
() => caricaFile("g1", "certificato", troppoGrande),
|
2026-09-02 11:34:09 +02:00
|
|
|
/File troppo grande: massimo 8 MB\./,
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
console.log("profili: ok");
|