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); }); });