Buchungskalender: Zustimmungs-Test streng, Online-Zahlung nur beim Einschalten prüfen
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
32cffb3518
commit
e3b399e003
3 files changed
+17
-5
No files matched your search
@@ -581,9 +581,13 @@ test('Zustimmung: ohne rechnungAuftrag verweigern freigeben und bucheVerbindlich
|
||||
assert.equal(r.body.fehler, 'zustimmung_fehlt')
|
||||
assert.equal(aw.docs('ukAnfragen').get('a1').status, 'neu')
|
||||
const ab = await import('../server/services/unterkunft/ablauf.js')
|
||||
anfrage('a2', { status: 'freigegeben', tokenHash: 'x', fristAt: new Date(Date.now() + 86400000).toISOString(), posten: JSON.stringify(POSTEN), summen: JSON.stringify({ bruttoCent: 20000, nettoCent: 20000, ust: [] }) })
|
||||
const ctx = { featureId: FEATURE, einstellungen: { ...EINST } }
|
||||
await assert.rejects(ab.bucheVerbindlich(ctx, 'a2', 'x', { rechnungsadresse: {}, zahlart: 'vorort' }), (e) => e instanceof UkFehler && e.code === 'zustimmung_fehlt' || e.code === 'nicht_gefunden')
|
||||
const { token, hash } = (await import('../server/services/unterkunft/token.js')).neuesToken()
|
||||
anfrage('a2', { status: 'freigegeben', tokenHash: hash, fristAt: new Date(Date.now() + 86400000).toISOString(), posten: JSON.stringify(POSTEN), summen: JSON.stringify({ bruttoCent: 20000, nettoCent: 20000, ust: [] }) })
|
||||
const ctx = { featureId: FEATURE, einstellungen: { ...EINST, rechnungAuftragAt: null } }
|
||||
await assert.rejects(
|
||||
ab.bucheVerbindlich(ctx, 'a2', token, { rechnungsadresse: { name: 'Eva', strasse: 'Weg 1', plz: '12345', ort: 'Berlin', land: 'DE' }, zahlart: 'vorort' }),
|
||||
(e) => e instanceof UkFehler && e.status === 409 && e.code === 'zustimmung_fehlt',
|
||||
)
|
||||
assert.equal(aw.docs('ukAnfragen').get('a2').status, 'freigegeben')
|
||||
assert.equal(aw.docs('ukRechnungen').size, 0)
|
||||
})
|
||||
@@ -597,4 +601,13 @@ test('Online-Zahlung: nur mit aktivem Stripe-Konto, sonst 409 mit felder.onlineZ
|
||||
assert.equal(r.status, 409)
|
||||
assert.ok(r.body.felder.onlineZahlung)
|
||||
assert.notEqual(aw.docs('ukEinstellungen').get(FEATURE).onlineZahlung, true)
|
||||
// ohne Konto ebenfalls 409
|
||||
aw.seed('ukEinstellungen', { $id: FEATURE, featureId: FEATURE, ...EINST })
|
||||
const ohne = await put('/einstellungen', { onlineZahlung: true })
|
||||
assert.equal(ohne.status, 409)
|
||||
assert.ok(ohne.body.felder.onlineZahlung)
|
||||
// bereits eingeschaltet: andere Aenderungen scheitern nicht, auch wenn Stripe inaktiv ist
|
||||
aw.seed('ukEinstellungen', { $id: FEATURE, featureId: FEATURE, ...EINST, onlineZahlung: true })
|
||||
assert.equal((await put('/einstellungen', { telefon: '123' })).status, 200)
|
||||
assert.equal((await put('/einstellungen', { onlineZahlung: true })).status, 200)
|
||||
})
|
||||
Reference in new issue
Block a user