From 13d73f90a83b5329defcebe7cd7b1554b8c67303 Mon Sep 17 00:00:00 2001 From: AdrianoDev Date: Fri, 28 Aug 2026 11:43:13 +0200 Subject: [PATCH] Eventi: i test seguono la data separata e l'URL stampato nel QR Il test dell'inaugurazione cercava la data dentro il titolo, ma i due sono stati separati in tag distinti il 19 agosto: era rosso da allora, anche in produzione. Il nuovo test tiene insieme le tre cose che devono restare d'accordo, perche' il QR delle locandine affisse non si corregge piu': la rotta servita dal sito, l'URL cucito nel codice e il PDF che la pagina offre in download. Co-Authored-By: Claude Opus 5 (1M context) --- tests/locandina-evento.test.ts | 31 +++++++++++++++++++++++++++++++ tests/modifiche-agosto.test.ts | 9 +++++---- 2 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 tests/locandina-evento.test.ts diff --git a/tests/locandina-evento.test.ts b/tests/locandina-evento.test.ts new file mode 100644 index 0000000..fee021c --- /dev/null +++ b/tests/locandina-evento.test.ts @@ -0,0 +1,31 @@ +import { existsSync, readFileSync } from 'node:fs'; +import { describe, expect, it } from 'vitest'; + +// L'indirizzo della pagina evento e' stampato dentro il QR code delle locandine affisse +// in giro per Bologna: una volta in strada non si corregge piu'. Questi test tengono +// insieme le tre cose che devono restare d'accordo — la rotta servita dal sito, l'URL +// cucito nel QR e il file che la pagina offre in download. +const ROTTA = 'src/pages/promo-eventi/eventi.astro'; +const URL_STAMPATO = 'https://insanitylab.it/promo-eventi/eventi'; + +describe('locandina In-Sanity Hour', () => { + it('la rotta che il QR indica esiste', () => { + expect(existsSync(ROTTA)).toBe(true); + }); + + it('il generatore della locandina punta a quella rotta', () => { + const script = readFileSync('scripts/locandina-evento.py', 'utf-8'); + expect(script).toContain(`URL_EVENTO = '${URL_STAMPATO}'`); + // La rotta del file deve corrispondere alla coda dell'URL, altrimenti il QR + // porterebbe altrove: /promo-eventi/eventi <- src/pages/promo-eventi/eventi.astro + const daFile = '/' + ROTTA.replace('src/pages/', '').replace('.astro', ''); + expect(URL_STAMPATO.endsWith(daFile)).toBe(true); + }); + + it('la locandina che la pagina offre in download esiste', () => { + const pagina = readFileSync(ROTTA, 'utf-8'); + const link = pagina.match(/href="(\/locandina-[^"]+\.pdf)"/); + expect(link).not.toBeNull(); + expect(existsSync(`public${link![1]}`)).toBe(true); + }); +}); diff --git a/tests/modifiche-agosto.test.ts b/tests/modifiche-agosto.test.ts index b5aa76f..79db52a 100644 --- a/tests/modifiche-agosto.test.ts +++ b/tests/modifiche-agosto.test.ts @@ -183,10 +183,11 @@ describe('promo ed eventi', () => { } }); - it('l\'inaugurazione dice la data e che il programma manca ancora', () => { - const testo = contentSeed.find((e) => e.tag === 'eventi.inaugurazione.body')!.value; - expect(contentSeed.find((e) => e.tag === 'eventi.inaugurazione.title')!.value).toContain('19 settembre 2026'); - expect(testo).toContain('programma completo'); + // I tag `eventi.*` restano nel seed — in produzione le righe esistono già — ma dal + // commit della landing dell'In-Sanity Hour non alimentano piu' nessuna pagina: la data + // vive nel suo tag, non nel titolo, da quando i due sono stati separati. + it('la data dell\'inaugurazione sta nel tag della data', () => { + expect(contentSeed.find((e) => e.tag === 'eventi.inaugurazione.date')!.value).toContain('19 settembre 2026'); }); // La voce di menu continua a puntare qui: è l'indirizzo già girato ai clienti.