From d0691236d59ff5f2074edf7fa17c17981951a46f Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 6 Oct 2026 06:15:58 +0000 Subject: [PATCH] =?UTF-8?q?=C3=96ffnungszeiten:=20Test=20h=C3=A4lt=20fest,?= =?UTF-8?q?=20dass=20ein=20gescheitertes=20L=C3=B6schen=20der=20Zeiten=20d?= =?UTF-8?q?en=20Kunden=20bis=20zum=20n=C3=A4chsten=20Lauf=20h=C3=A4lt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Seit TP2 bleiben die Abo-Dokumente stehen (held), wenn das Löschen abhängiger Daten scheitert. Der Test für die Aufbewahrungs-Löschung prüft jetzt auch für die Zeiten: held nennt den Kunden, das Abo-Dokument bleibt, der nächste Lauf findet den Kunden wieder und erst nach dem Löschen der Zeiten gehen die Abo-Dokumente. Co-Authored-By: Claude Opus 5.5 --- test/zeitenLoeschen.test.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/zeitenLoeschen.test.js b/test/zeitenLoeschen.test.js index 2bbc09a..05b2a1a 100644 --- a/test/zeitenLoeschen.test.js +++ b/test/zeitenLoeschen.test.js @@ -217,9 +217,15 @@ test('Löschfristen: scheitert das Löschen der Zeiten, bleibt die Funktion akti assert.match(formatReport(plan, erster), /Fehlgeschlagen[\s\S]*oeffnungszeiten .*kaputt/) for (const f of kunde.features) assert.equal(featureDoc(f.$id).state, 'active') assert.equal(zeitenDocs(kunde.customerId).length, 1, 'ein Dokument ist schon weg, eines geblieben') + // TP2: ein gescheitertes Löschen abhängiger Daten hält das Abo-Dokument, damit der nächste Lauf den Kunden wiederfindet (gilt auch für die Zeiten) + assert.deepEqual(erster.held, [kunde.customerId]) + assert.ok(aw.docs('subscriptions').has(`sub_${kunde.customerId}`), 'Abo-Dokument bleibt stehen') + assert.ok((await findDueDeletions(JAN_2026)).customers.some((c) => c.customerId === kunde.customerId), 'der nächste Lauf findet den Kunden wieder') const zweiter = await applyDeletions(plan) assert.deepEqual(zweiter.failed, []) + assert.deepEqual(zweiter.held, []) + assert.equal(aw.docs('subscriptions').has(`sub_${kunde.customerId}`), false, 'erst nach dem Löschen der Zeiten gehen die Abo-Dokumente') assert.equal(zweiter.deleted.zeiten, 1) assert.deepEqual(zeitenDocs(kunde.customerId), []) assert.deepEqual(merkerVon(kunde.features), [])