Documenta il salto automatico dei test CSI quando il portale non risponde
Aggiunto un punto ai Limiti noti di collegamento-csi.md: il portale può essere del tutto irraggiungibile (non solo cambiare formato, già coperto dal punto 5), con l'episodio dell'8 settembre 2026 come esempio verificato. Spiega perché api.test.ts salta quei 5 test invece di farli fallire, e che tornano a girare da soli quando il CSI risponde di nuovo. Aggiunta la stessa nota, più breve, in test/README.md. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -118,6 +118,20 @@ useCsi() → src/lib/csi.ts (React Query, staleTime 6h)
|
||||
cambiano solo se cambia il dominio o serve autenticazione, nel qual caso va toccata anche
|
||||
`src/routes/api/public/csi.ts`); va poi aggiornato anche `test/unit/csi-core.test.ts` con
|
||||
fixture nel nuovo formato.
|
||||
6. **Il portale può essere del tutto irraggiungibile, non solo cambiare formato.** Scenario
|
||||
diverso dal punto 5 (lì il JSON è valido ma non riconosciuto, qui la risposta non è
|
||||
nemmeno JSON): l'8 settembre 2026 `getEventsByTeamId.php` ha risposto con `200` ma un
|
||||
errore SQL del loro backend in chiaro al posto del JSON
|
||||
(`Query non valida (getProjectTeams): Table 'uqc2os2x_livescore.seasons' doesn't exist`,
|
||||
verificato con `curl` diretto sul loro dominio). `leggiCsi()` (`src/routes/api/public/
|
||||
csi.ts`) intercetta l'eccezione di `JSON.parse` nel `try/catch` della route e risponde
|
||||
`503 "CSI non raggiungibile"` (o serve la cache se ce n'è una) — nessun crash, ma nessun
|
||||
dato nuovo finché il portale non torna. **Effetto sulla suite test**: i 5 test di
|
||||
`test/integration/api.test.ts` che leggono il CSI reale sondano `/api/public/csi` una
|
||||
volta prima di partire; se risponde con errore li salta (`salta()`, non `prova()`) invece
|
||||
di farli fallire, loggando il motivo — la suite resta verde durante un'indisponibilità
|
||||
temporanea del portale, senza che quei 5 test vengano cancellati o disattivati in modo
|
||||
permanente: tornano a girare da soli non appena il CSI risponde di nuovo con `200`.
|
||||
|
||||
---
|
||||
|
||||
|
||||
@@ -102,6 +102,12 @@ Due cose scoperte scrivendo questi test, utili a chi ne aggiunge:
|
||||
I test che richiedono `SUPABASE_SERVICE_ROLE_KEY` si saltano da soli se manca.
|
||||
- Il check del parsing CSI può girare contro il portale reale:
|
||||
`CSI_LIVE=1 bun test/unit/csi-core.test.ts`.
|
||||
- I 5 test di `integration/api.test.ts` che leggono il CSI reale (classifica, partite,
|
||||
cache, obiettivi o3/o4/o5) sondano `/api/public/csi` prima di partire: se il portale non
|
||||
risponde (in manutenzione lato loro, vedi
|
||||
[docs/modules/collegamento-csi.md](../docs/modules/collegamento-csi.md) § Limiti noti) si
|
||||
saltano da soli invece di far fallire la suite, e tornano a girare da soli quando il
|
||||
portale risponde di nuovo.
|
||||
|
||||
## Limite noto
|
||||
|
||||
|
||||
Reference in New Issue
Block a user