Wechsel Hosting → Wartung: neuer Abbuchungstag, Gutschrift, 12 neue Monate
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
379cc26dcd
commit
188db4b3c1
15 files changed
+2035
-12
No files matched your search
@@ -19,6 +19,7 @@ const {
|
||||
completeContractEvent,
|
||||
updateContractEvent,
|
||||
eventIdFor,
|
||||
getContractEvent,
|
||||
} = await import('../server/services/contractEvents.js')
|
||||
|
||||
test('Ereignis speichern und lesen (details als JSON)', async () => {
|
||||
@@ -124,6 +125,23 @@ test('Ereignis aktualisieren: Status setzen, details zusammenfuehren', async ()
|
||||
assert.deepEqual(JSON.parse(updated.details), { von: 'wartung', zu: 'hosting', grund: 'Zahlung fehlgeschlagen' })
|
||||
})
|
||||
|
||||
// Task 9: ein einzelnes Ereignis lesen (markSwitchFailed, Skript fuers Team), details geparst wie in der Liste
|
||||
test('Einzelnes Ereignis lesen: details geparst, unbekannte id 404', async () => {
|
||||
const created = await recordContractEvent({
|
||||
customerId: 'c5',
|
||||
subscriptionId: 'sub_5',
|
||||
type: 'wechsel',
|
||||
productKey: 'wartung',
|
||||
details: { from: 'hosting', paymentUrl: 'https://pay.example/inv' },
|
||||
status: 'offen',
|
||||
})
|
||||
const event = await getContractEvent(created.$id)
|
||||
assert.equal(event.$id, created.$id)
|
||||
assert.equal(event.status, 'offen')
|
||||
assert.deepEqual(event.details, { from: 'hosting', paymentUrl: 'https://pay.example/inv' })
|
||||
await assert.rejects(getContractEvent('gibt-es-nicht'), (e) => e.status === 404)
|
||||
})
|
||||
|
||||
// F05: dieselbe id zweimal speichern (z. B. Webhook-Wiederholung) ist kein Fehler, sondern liefert
|
||||
// das schon vorhandene Dokument zurueck, ohne ein zweites anzulegen
|
||||
test('Ereignis mit vorhandener id (409): liefert das schon gespeicherte Dokument', async () => {
|
||||
|
||||
Reference in new issue
Block a user