Kundenansicht neu P10: Korrekturen aus der Pruefung (Task 3)

Archiv v5 bei on für Fassung-5-Zustimmungen (termsDocFor archiv), /auftrag.html in der Weiche (Übersicht N40), Test mit dem echten Schalter, Hinweise zu Task 14

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-29 12:07:57 +00:00
1 parent 3413355b14
commit db5e6ece2c
6 files changed
+88 -5

No files matched your search

+28
View File
@@ -29,6 +29,7 @@ const { withdrawalDeadline } = await import('../server/services/deadlines.js')
const { offerText } = await import('../server/services/offers.js')
const { setMailTransportForTests } = await import('../server/services/mailer.js')
const { mailSink } = await import('./support/mailSink.js')
const { termsDocFor } = await import('../server/services/products.js')
const app = await startTestApp({ '/api/abo': aboRoutes })
// F25: Mails landen in einer Senke statt bei SMTP, damit K01 (Anhang je Fassung) und T02 pruefbar sind (Task 12)
@@ -547,3 +548,30 @@ test('Webhook: Nachweis voruebergehend nicht speicherbar (500) → 500, Wiederho
await cleanupWebhook(subId, 'o3')
}
})
// P10 (Prüfung Task 3): Bei on liefert die Weiche unter /abo-bedingungen.html und /WEBklar-Abo-Vertragsunterlagen.pdf
// Fassung 6. Wer Fassung 5 zugestimmt hat, bekommt in Verträge und Stunden deshalb das Archiv v5 (Altverträge bleiben auffindbar).
test('GET /api/abo: bei on führen Bedingungen und PDF einer Fassung-5-Zustimmung ins Archiv v5, sonst bleiben die Adressen', async () => {
const gemerkt = { ...config.kundenansichtNeu }
const adressen = async (termsVersion) => {
aw.seed('subscriptions', subscriptionDoc('sub_h', { ...hostingDoc, termsVersion }))
const r = await get('/api/abo', { cookie: sessionCookie({ customerId: 'c1', appwriteUserId: 'u1' }) })
return [r.subscription.termsUrl, r.subscription.termsPdfUrl]
}
const heute = (v) => [termsDocFor(v).url, `/${termsDocFor(v).pdfFile}`]
const V5 = '2026-09-30-v5'
const ARCHIV_V5 = ['/vertragsunterlagen/v5/abo-bedingungen.html', '/vertragsunterlagen/v5/WEBklar-Abo-Vertragsunterlagen.pdf']
try {
for (const mode of ['off', 'pilot']) {
Object.assign(config.kundenansichtNeu, { mode, pilotEmails: ['*'] })
assert.deepEqual(await adressen(V5), heute(V5), mode)
}
Object.assign(config.kundenansichtNeu, { mode: 'on', pilotEmails: [] })
assert.deepEqual(await adressen(V5), ARCHIV_V5)
// alle anderen Fassungen behalten ihre Adressen (v6 zeigt auf Fassung 6, v4 und v3 liegen schon im Archiv)
for (const v of [config.abo.termsVersionNeu, '2026-09-30-v4', '2026-09-25-v3']) assert.deepEqual(await adressen(v), heute(v), v)
} finally {
Object.assign(config.kundenansichtNeu, gemerkt)
aw.seed('subscriptions', hostingDoc)
}
})