La promo di settembre subentra ai bundle il 5, cinque pacchetti
Gli Opening Bundles scadono il 04/09 alle 23:59:59 e dopo di loro non c'era nessuna edizione: dal 5 il sito avrebbe mostrato "Nessuna promozione in corso" mentre le promo erano vive. Adriano ha consegnato le sei creative il 03/09. Edizione `settembre-2026` (5 -> 19 settembre, chiude il giorno dell'inaugurazione): tornano i pacchetti da 5 incontri, con in piu' il Check-up avanzato, che e' una valutazione singola e per questo dice "1 valutazione" invece di "5 incontri". Prezzi 250/150/130/80/70. Due cose che la struttura non prevedeva: - **Nessun prezzo barrato.** Le creative danno il solo prezzo promo, e i listini pieni di agosto (300/220/140/100) sono numeri che nessuno ha riconfermato - riportarli accanto ai nuovi sarebbe stato inventarli. `price-old` diventa opzionale nella CardSpec (`priceOld`) invece di essere un tag vuoto: cosi' la spec dichiara che quella card non ne ha, e il test lo pretende solo dove c'e'. Agosto e i bundle sono marcati `priceOld: true`, quindi restano sotto controllo come prima. - **Cinque card non stanno in una griglia da due o da tre** senza lasciare un buco in fondo. `.cards-5` va a sei colonne con span due, cosi' le ultime due si spostano al centro; a due card per riga sotto i 1000px, a una sotto i 700. Testi ripresi dall'edizione di agosto, gia' approvata dal cliente, cambiando solo cio' che le date rendevano falso: la FAQ delle class diceva "gli orari saranno pubblicati entro Settembre" e adesso e' settembre, quindi rimanda al calendario che esiste. La FAQ 7 sul Check-up e' nuova e va fatta leggere a Nicola prima della pubblicazione. 186 test verdi, `astro check` invariato (i 3 errori della pagina promo sono preesistenti e non toccati). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FPKFABRT3y26dFNMquF3CS
This commit is contained in:
@@ -8,11 +8,12 @@ describe('edizioneAttiva', () => {
|
||||
it('sceglie l\'edizione la cui finestra contiene l\'istante', () => {
|
||||
expect(edizioneAttiva(d('2026-08-15T12:00:00+02:00'))?.id).toBe('agosto-2026');
|
||||
expect(edizioneAttiva(d('2026-08-25T12:00:00+02:00'))?.id).toBe('bundle-apertura');
|
||||
expect(edizioneAttiva(d('2026-09-10T12:00:00+02:00'))?.id).toBe('settembre-2026');
|
||||
});
|
||||
|
||||
it('fuori da ogni finestra non c\'è edizione attiva', () => {
|
||||
expect(edizioneAttiva(d('2026-07-15T12:00:00+02:00'))).toBeNull();
|
||||
expect(edizioneAttiva(d('2026-09-10T12:00:00+02:00'))).toBeNull();
|
||||
expect(edizioneAttiva(d('2026-09-25T12:00:00+02:00'))).toBeNull();
|
||||
});
|
||||
|
||||
// Il passaggio è il momento in cui il sito cambia da solo: va provato al secondo, e in ora
|
||||
@@ -22,13 +23,16 @@ describe('edizioneAttiva', () => {
|
||||
expect(edizioneAttiva(d('2026-08-19T23:59:59+02:00'))?.id).toBe('agosto-2026');
|
||||
expect(edizioneAttiva(d('2026-08-20T00:00:00+02:00'))?.id).toBe('bundle-apertura');
|
||||
expect(edizioneAttiva(d('2026-09-04T23:59:59+02:00'))?.id).toBe('bundle-apertura');
|
||||
expect(edizioneAttiva(d('2026-09-05T00:00:00+02:00'))).toBeNull();
|
||||
expect(edizioneAttiva(d('2026-09-05T00:00:00+02:00'))?.id).toBe('settembre-2026');
|
||||
expect(edizioneAttiva(d('2026-09-19T23:59:59+02:00'))?.id).toBe('settembre-2026');
|
||||
expect(edizioneAttiva(d('2026-09-20T00:00:00+02:00'))).toBeNull();
|
||||
});
|
||||
|
||||
it('l\'ordine dell\'elenco non cambia il risultato', () => {
|
||||
const rovescio = [...edizioni].reverse();
|
||||
expect(edizioneAttiva(d('2026-08-15T12:00:00+02:00'), rovescio)?.id).toBe('agosto-2026');
|
||||
expect(edizioneAttiva(d('2026-08-25T12:00:00+02:00'), rovescio)?.id).toBe('bundle-apertura');
|
||||
expect(edizioneAttiva(d('2026-09-10T12:00:00+02:00'), rovescio)?.id).toBe('settembre-2026');
|
||||
});
|
||||
});
|
||||
|
||||
@@ -80,7 +84,8 @@ describe('i testi di ogni edizione esistono', () => {
|
||||
'countdown.unit.days', 'countdown.unit.hours', 'countdown.unit.minutes', 'countdown.unit.seconds'];
|
||||
if (e.launch) base.push('launch.badge', 'launch.title', 'launch.accent', 'launch.desc', 'why5.text');
|
||||
for (const c of e.cards) {
|
||||
base.push(`card.${c.id}.eyebrow`, `card.${c.id}.title`, `card.${c.id}.price`, `card.${c.id}.price-old`);
|
||||
base.push(`card.${c.id}.eyebrow`, `card.${c.id}.title`, `card.${c.id}.price`);
|
||||
if (c.priceOld) base.push(`card.${c.id}.price-old`);
|
||||
if (c.featured) base.push(`card.${c.id}.badge`);
|
||||
if (c.unit) base.push(`card.${c.id}.unit`);
|
||||
if (c.question) base.push(`card.${c.id}.question`);
|
||||
|
||||
Reference in New Issue
Block a user