diff --git a/scripts/umschalten-nachpruefung.mjs b/scripts/umschalten-nachpruefung.mjs index cf7619e..2fd87b2 100644 --- a/scripts/umschalten-nachpruefung.mjs +++ b/scripts/umschalten-nachpruefung.mjs @@ -27,6 +27,7 @@ export const PRUEFUNGEN = Object.freeze({ html('/login.html', ['content="#ffffff"', '/neu/tokens.css'], ['#9d3dfe', '/login.css']), html('/kuendigen.html', NEU_FORMULAR, ['/legal-form.css']), html('/widerrufen.html', NEU_FORMULAR, ['/legal-form.css']), + html('/auftrag.html', ['/neu/oeffentlich/oeffentlich.css'], ['/auftrag.css']), // Uebersicht N40 html('/offline.html', ['content="#ffffff"'], ['#9d3dfe', ' Promise.all([aw.close(), st.close()])) @@ -40,6 +41,15 @@ test('neu und alt: alle Zeilen grün, eine Zeile je Prüfung', async () => { } }) +test('Übersicht N40: /auftrag.html hat in neu und alt eine Zeile (neu: oeffentlich.css ja, auftrag.css nein)', async () => { + const zeile = (e) => PRUEFUNGEN[e].find((p) => p.pfad === '/auftrag.html') + assert.deepEqual([zeile('neu').enthaelt, zeile('neu').enthaeltNicht, zeile('alt').enthaelt], [['/neu/oeffentlich/oeffentlich.css'], ['/auftrag.css'], ['/auftrag.css']]) + // die alte Auftragsseite, wo die neue erwartet wird: genau diese Zeile ist rot + const r = await nachpruefen('https://stub.invalid', 'neu', { fetchFn: stub('neu', (p) => (p === '/auftrag.html' ? { status: 200, type: 'text/html', body: '/neu/oeffentlich/oeffentlich.css /auftrag.css' } : null)) }) + assert.deepEqual(r.zeilen.filter((z) => !z.ok).map((z) => z.pfad), ['/auftrag.html']) + assert.match(r.zeilen.find((z) => z.pfad === '/auftrag.html').grund, /verboten: \/auftrag\.css/) +}) + test('neu gegen alte Seiten ist rot und nennt die Seiten', async () => { const r = await nachpruefen('https://stub.invalid', 'neu', { fetchFn: async (u) => stub('alt')(u).catch(() => new Response('', { status: 404 })) }) assert.equal(r.ok, false) @@ -81,24 +91,29 @@ test('gegen die echten Dateien der Weiche: alt bei off, neu bei on (ohne die Fas }) test('mit der echten Fassung 6 der Weiche: alle Zeilen, alt bei pilot, neu bei on', async () => { + // P10 Task 14: Mit dem Festschreiben (termsVersion = termsVersionNeu) steht Fassung 6 unter /abo-bedingungen.html, auch bei + // pilot; die Zeile "Version 5 · Stand" von alt gibt es dann nicht mehr, und die Weiche hat keine Fassung-6-Zeilen mehr. + const fassung5Gilt = config.abo.termsVersion !== config.abo.termsVersionNeu + const ohneAlt = fassung5Gilt ? [] : ['/abo-bedingungen.html'] let modus = 'pilot' const router = express.Router() router.use(umschaltSeitenRouter({ publicDir, modus: () => modus })) router.use(express.static(publicDir)) const app = await startTestApp({ '/': router }) try { - const alt = await nachpruefen(app.url, 'alt') + const alt = await nachpruefen(app.url, 'alt', { ohne: ohneAlt }) assert.deepEqual(alt.zeilen.filter((z) => !z.ok), []) - assert.equal(alt.zeilen.length, PRUEFUNGEN.alt.length) + assert.equal(alt.zeilen.length, PRUEFUNGEN.alt.length - ohneAlt.length) modus = 'on' const neu = await nachpruefen(app.url, 'neu') assert.deepEqual(neu.zeilen.filter((z) => !z.ok), []) assert.equal(neu.zeilen.length, PRUEFUNGEN.neu.length) - // und neu gegen den Stand von pilot ist rot: die Prüfung unterscheidet wirklich + // und neu gegen den Stand von pilot ist rot: die Prüfung unterscheidet wirklich (jede Seite der Weiche fällt auf) modus = 'pilot' const falsch = await nachpruefen(app.url, 'neu') assert.equal(falsch.ok, false) - assert.ok(falsch.zeilen.filter((z) => !z.ok).length >= PRUEFUNGEN.neu.length - 1) + const rot = falsch.zeilen.filter((z) => !z.ok).map((z) => z.pfad) + for (const pfad of Object.keys(UMSCHALT_SEITEN)) assert.ok(rot.includes(pfad), pfad) } finally { await app.close() }