Files
CRAPP/test/unit/profili.test.ts
T
davideandClaude Sonnet 5.5 de78431090 Toglie la foto tessera dal profilo (DD-044)
Il Profilo non chiede più la foto tessera e la scheda admin non la mostra.
Il completamento diventa dati personali 34%, documento 33%, certificato 33%.
La migration m29 elimina la colonna profili_giocatore.foto_path; le 4 foto
già caricate sono state cancellate dal bucket profili-giocatore. Migration
applicata in produzione.

Test: pesi e sezioni di profili-core, rendering di CampiProfilo, colonna
rimossa sul database locale. Documentati DD-044, modulo profilo-giocatore,
DATABASE, ROADMAP e changelog.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-01 15:03:04 +02:00

26 lines
989 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)], "certificato.jpg", {
type: "image/jpeg",
});
await assert.rejects(
() => caricaFile("g1", "certificato", troppoGrande),
/File troppo grande: massimo 8 MB\./,
);
console.log("profili: ok");