Buchungskalender: Rechtstexte, Einbau- und Livegang-Notiz

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
knsoandClaude Opus 5.5 committed 2026-10-07 14:23:21 +00:00
1 parent 4553bc8e92
commit b25689a015
21 files changed
+1456 -11

No files matched your search

+19
View File
@@ -346,6 +346,25 @@ test('featureLegalReady("shop") ist true: alle sechs Dateien der Fassung (Leistu
}
})
test('featureLegalReady("unterkunft") ist true: alle sechs Dateien der Fassung (Leistungsbeschreibung, AVV, Widerrufsbelehrung als HTML und PDF) sind da (Task 21)', async () => {
const U = config.unterkunft.fassung
const html = Object.values(legalPaths('unterkunft', U))
const pdfs = Object.values(legalPdfFiles('unterkunft', U)).map((x) => x.path)
assert.equal(html.length, 3)
assert.equal(pdfs.length, 3)
for (const p of html) assert.ok(existsSync(root(`public${p}`)), `${p} fehlt`)
for (const p of pdfs) assert.ok(existsSync(p), `${p} fehlt`)
assert.equal(await featureLegalReady('unterkunft'), true)
assert.equal(await featureLegalReady('unterkunft', { fassung: '1999-01-01' }), false)
const anhaenge = await featureLegalAttachments('unterkunft')
assert.deepEqual(anhaenge.map((a) => a.filename), [
`Leistungsbeschreibung-Buchungskalender-${U}.pdf`,
`AVV-Buchungskalender-${U}.pdf`,
`Widerrufsbelehrung-Muster-Widerrufsformular-${U}.pdf`,
])
for (const a of anhaenge) assert.equal(a.content.subarray(0, 5).toString('latin1'), '%PDF-')
})
test('Register: leistungsbeschreibung, avv und widerruf des Webshops folgen config.shop.fassung (Drift-Wächter)', () => {
const s = featureConfig('shop')
const S = config.shop.fassung