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>
38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
/**
|
|
* Via la foto tessera dal profilo (M29, DD-044): `bun test/integration/foto-tessera-rimossa.test.ts`.
|
|
*
|
|
* Gira solo sullo stack locale (`npx supabase start`): verifica che la colonna `foto_path` non ci
|
|
* sia più e che le colonne lette dall'app (`COLONNE_PROFILO`) esistano tutte. Non guarda il
|
|
* database di `.env`, che può essere ancora quello di produzione prima di applicare la M29.
|
|
*/
|
|
import assert from "node:assert/strict";
|
|
import { COLONNE_PROFILO } from "@/lib/profili-core";
|
|
import { statoLocale } from "../helpers/locale";
|
|
import { prova, riepilogo, salta } from "../helpers/prova";
|
|
|
|
const locale = statoLocale();
|
|
|
|
if (!locale) {
|
|
salta("foto tessera rimossa", "stack locale non attivo (npx supabase start)");
|
|
riepilogo("foto-tessera-rimossa");
|
|
} else {
|
|
const leggi = (colonne: string) =>
|
|
fetch(`${locale.url}/rest/v1/profili_giocatore?select=${encodeURIComponent(colonne)}&limit=1`, {
|
|
headers: { apikey: locale.servizio, Authorization: `Bearer ${locale.servizio}` },
|
|
});
|
|
|
|
await prova("la colonna foto_path non esiste più", async () => {
|
|
const res = await leggi("foto_path");
|
|
assert.equal(res.status, 400, "PostgREST rifiuta una colonna che non c'è");
|
|
assert.match(await res.text(), /foto_path/);
|
|
});
|
|
|
|
await prova("le colonne lette dall'app esistono tutte", async () => {
|
|
assert.ok(!COLONNE_PROFILO.includes("foto"), "COLONNE_PROFILO non nomina la foto");
|
|
const res = await leggi(COLONNE_PROFILO);
|
|
assert.equal(res.status, 200, await res.text());
|
|
});
|
|
|
|
riepilogo("foto-tessera-rimossa");
|
|
}
|