Rechtstexte und K15: Prüfbefunde F5–F8 (AVV genauer, PDF-Prüfsumme, Unterlagen der vereinbarten Fassung)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Sonnet 5.5 committed 2026-10-05 03:42:27 +00:00
1 parent 2c059cb3d6
commit 90098726b9
13 files changed
+345 -63

No files matched your search

+20 -1
View File
@@ -11,7 +11,7 @@ import { useTestEnv } from './support/testEnv.js'
useTestEnv({ appwriteUrl: 'http://127.0.0.1:1', stripeUrl: 'http://127.0.0.1:1' })
const { config } = await import('../server/config.js')
const { startTestApp } = await import('./support/testApp.js')
const { legalPaths, legalPdfFiles, legalPdfAttachments, featureLegalAttachments, featureLegalReady, legalRouter, setLegalDirForTests } = await import(
const { legalPaths, legalPdfFiles, legalPdfAttachments, featureLegalAttachments, featureLegalReady, featureLegalPaths, legalRouter, setLegalDirForTests } = await import(
'../server/services/legalDocs.js'
)
const analyse = await import('../server/services/analyseLegal.js')
@@ -200,6 +200,25 @@ test('featureLegalReady("termine"): je PDF stat und "%PDF-", nie den ganzen Inha
assert.equal(await featureLegalReady('termine'), true, 'mit den ausgelieferten Dateien bereit')
})
// Fassung wählbar (Task F8, Fix-Runde 1): K15 schickt die Unterlagen der Fassung, der der Kunde zugestimmt hat
test('featureLegalAttachments / featureLegalReady / featureLegalPaths mit opts.fassung', async () => {
assert.deepEqual(featureLegalPaths('termine'), legalPaths('termine', V))
assert.deepEqual(featureLegalPaths('termine', { fassung: '2026-10-01' }), legalPaths('termine', '2026-10-01'))
assert.equal(featureLegalPaths('news'), null)
assert.throws(() => featureLegalPaths('gibtsnicht'), /Funktion/)
assert.throws(() => featureLegalPaths('termine', { fassung: '2026-10-5' }), /Fassung/)
// ausdrücklich die aktuelle Fassung = ohne Angabe
assert.deepEqual((await featureLegalAttachments('termine', { fassung: V })).map((a) => a.filename), (await featureLegalAttachments('termine')).map((a) => a.filename))
assert.equal(await featureLegalReady('termine', { fassung: V }), true)
// andere Fassung ohne Dateien: Wurf bei den Anhängen, false bei der Prüfung, news weiter []
await assert.rejects(featureLegalAttachments('termine', { fassung: '1999-01-01' }))
assert.equal(await featureLegalReady('termine', { fassung: '1999-01-01' }), false)
assert.equal(await featureLegalReady('termine', { fassung: 'kaputt' }), false)
assert.deepEqual(await featureLegalAttachments('news', { fassung: '1999-01-01' }), [])
// opts.ohne wirkt weiter neben fassung
assert.deepEqual((await featureLegalAttachments('termine', { fassung: V, ohne: ['avv'] })).map((a) => a.filename.split('-')[0]), ['Leistungsbeschreibung', 'Widerrufsbelehrung'])
})
test('config.termine.avvVersion: Datumsmuster, nach der Altfassung der Gästetexte, echter Tag', () => {
assert.match(config.termine.avvVersion, /^\d{4}-\d{2}-\d{2}$/)
assert.ok(config.termine.avvVersion > ALT, `${config.termine.avvVersion} liegt nicht nach ${ALT}`)