Aggiunge il dettaglio esteso di partita: formazioni e scontri diretti dal CSI
In Campionato > Storico partite ogni gara diventa cliccabile: verso /partita/$id se collegata a un evento CrAPP, verso la nuova /partita-csi/$id altrimenti (nessuna creazione automatica di eventi dal calendario CSI, quindi molte gare ne sono prive). Il dettaglio aggiunge formazioni (titolari/panchina/staff), storico scontri diretti e probabilità di vittoria calcolata dal CSI, letti on-demand da tre nuovi endpoint per-partita (match-main/players/stats.php) dietro /api/public/csi-partita/$id, con cache server per-partita separata da quella di /api/public/csi — è un dato aperto a richiesta, non precaricato per tutti come classifica e partite. Include anche logo squadra e metadati leggeri (girone, n° gara, arbitro, link al referto ufficiale) già presenti nel JSON esistente, a costo zero. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -70,11 +70,25 @@ try {
|
||||
const html = await pagina("/classifica");
|
||||
assert.match(titolo(html), /Classifica campionato/);
|
||||
assert.doesNotMatch(html, /CSI Milano/, "nessun residuo dei dati demo nel guscio");
|
||||
|
||||
// Una gara giocata deve avere un dettaglio "solo CSI" raggiungibile, con il suo
|
||||
// endpoint per-partita servito (formazioni/precedenti): vedi partita-csi.$id.tsx.
|
||||
const giocata = csi.partite.find((p) => p.setNostri !== null);
|
||||
if (giocata) {
|
||||
const htmlPartita = await pagina(`/partita-csi/${giocata.id}`);
|
||||
assert.match(titolo(htmlPartita), /Dettaglio partita/);
|
||||
const dettaglio = await fetch(url(`/api/public/csi-partita/${giocata.id}`));
|
||||
assert.equal(dettaglio.status, 200, "l'endpoint per-partita risponde");
|
||||
}
|
||||
});
|
||||
|
||||
// --- 4. Dettaglio di un evento --------------------------------------------
|
||||
await prova("le pagine di dettaglio reggono un id inesistente", async () => {
|
||||
for (const percorso of ["/partita/non-esiste", "/allenamento/non-esiste"]) {
|
||||
for (const percorso of [
|
||||
"/partita/non-esiste",
|
||||
"/allenamento/non-esiste",
|
||||
"/partita-csi/non-esiste",
|
||||
]) {
|
||||
const res = await fetch(url(percorso));
|
||||
assert.ok(res.status < 500, `${percorso}: nessun errore server (era ${res.status})`);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user