Kundenansicht neu E-Fix M10: hatLoeschVermerk prüft den strengen Vermerk der Löschjobs
hatLoeschVermerk erkannte gelöschte Daten an /gelöscht am/ in adminNote. Der Vermerk der Jobs ist strenger (Shopdaten bzw. Buchungsdaten
gelöscht am JJJJ-MM-TT), freier Text des Teams ("Domain gelöscht am Kundenwunsch") traf das lockere Muster: das Abo kam zurück, der Abgleich hielt
die Daten für gelöscht und setzte das Dokument auf off statt die Funktion wieder einzuschalten. Jetzt je Funktion das Muster des Jobs mit Datum.
Test in knLoeschVermerk.test.js.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
f6fc291dfe
commit
6ff63a7a11
2 files changed
+31
-1
No files matched your search
@@ -86,7 +86,9 @@ const TAG_FELDER_LEER = Object.freeze({ ticketId: null, activatedAt: null, aboEn
|
|||||||
|
|
||||||
/** Vermerk der bestehenden Loeschjobs von Webshop und Buchungskalender in der Notiz. */
|
/** Vermerk der bestehenden Loeschjobs von Webshop und Buchungskalender in der Notiz. */
|
||||||
const LOESCH_VERMERK = /\s*(?:[-–|]\s*)?(?:Shopdaten|Buchungsdaten) gelöscht am \d{4}-\d{2}-\d{2}/g
|
const LOESCH_VERMERK = /\s*(?:[-–|]\s*)?(?:Shopdaten|Buchungsdaten) gelöscht am \d{4}-\d{2}-\d{2}/g
|
||||||
const hatLoeschVermerk = (doc) => (doc.featureKey === 'shop' || doc.featureKey === 'unterkunft') && /gelöscht am/.test(String(doc.adminNote ?? ''))
|
// E-Fix M10: nur der Vermerk des jeweiligen Loeschjobs mit Datum (shop/jobs.js, unterkunft/aufbewahrung.js: MARKER_RE), nie freier Text des Teams wie "Domain geloescht am Kundenwunsch"
|
||||||
|
const LOESCH_VERMERK_JE_FUNKTION = Object.freeze({ shop: /Shopdaten gelöscht am \d{4}-\d{2}-\d{2}/, unterkunft: /Buchungsdaten gelöscht am \d{4}-\d{2}-\d{2}/ })
|
||||||
|
export const hatLoeschVermerk = (doc) => LOESCH_VERMERK_JE_FUNKTION[doc.featureKey]?.test(String(doc.adminNote ?? '')) === true
|
||||||
|
|
||||||
/** News: ist disabledAt plus die Loeschfrist (30 Tage) am Berliner Kalendertag erreicht? Ohne gueltiges disabledAt nie. */
|
/** News: ist disabledAt plus die Loeschfrist (30 Tage) am Berliner Kalendertag erreicht? Ohne gueltiges disabledAt nie. */
|
||||||
function loeschReif(doc, now) {
|
function loeschReif(doc, now) {
|
||||||
|
|||||||
@@ -0,0 +1,28 @@
|
|||||||
|
import { test, after } from 'node:test'
|
||||||
|
import assert from 'node:assert/strict'
|
||||||
|
import { startAppwriteMock } from './support/appwriteMock.js'
|
||||||
|
import { startFakeStripe } from './support/fakeStripe.js'
|
||||||
|
import { useTestEnv } from './support/testEnv.js'
|
||||||
|
|
||||||
|
// E-Fix M10: hatLoeschVermerk erkennt gelöschte Daten nur am strengen Vermerk der Löschjobs (Shopdaten|Buchungsdaten gelöscht am JJJJ-MM-TT),
|
||||||
|
// nicht an freiem Text des Teams in adminNote.
|
||||||
|
const aw = await startAppwriteMock({ schema: {} })
|
||||||
|
const st = await startFakeStripe()
|
||||||
|
useTestEnv({ appwriteUrl: aw.url, stripeUrl: st.url })
|
||||||
|
after(() => Promise.all([aw.close(), st.close()]))
|
||||||
|
const { hatLoeschVermerk } = await import('../server/services/aboFunktionenAbgleich.js')
|
||||||
|
|
||||||
|
test('M10: hatLoeschVermerk braucht den Vermerk des jeweiligen Löschjobs mit Datum; freier Text des Teams zählt nicht', () => {
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'shop', adminNote: 'Shopdaten gelöscht am 2026-10-04' }), true)
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'unterkunft', adminNote: 'Buchungsdaten gelöscht am 2026-10-04' }), true)
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'unterkunft', adminNote: '2026-10-05T09:00:00.000Z Kenso: disable | Buchungsdaten gelöscht am 2026-10-04' }), true, 'der Vermerk steht auch hinter Teamnotizen')
|
||||||
|
// freier Text: kein Löschvermerk, die Funktion kommt mit dem Abo zurück
|
||||||
|
for (const note of ['Domain gelöscht am Kundenwunsch', 'Daten gelöscht am 2026-10-04', 'gelöscht am', '2026-10-05T09:00:00.000Z Kenso: disable – Konto gelöscht am Montag']) {
|
||||||
|
for (const featureKey of ['shop', 'unterkunft']) assert.equal(hatLoeschVermerk({ featureKey, adminNote: note }), false, `${featureKey}: ${note}`)
|
||||||
|
}
|
||||||
|
// je Funktion getrennt: der Shop-Vermerk gilt nicht für den Buchungskalender und umgekehrt; andere Funktionen haben keinen
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'unterkunft', adminNote: 'Shopdaten gelöscht am 2026-10-04' }), false)
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'shop', adminNote: 'Buchungsdaten gelöscht am 2026-10-04' }), false)
|
||||||
|
for (const featureKey of ['news', 'termine', 'zeiten']) assert.equal(hatLoeschVermerk({ featureKey, adminNote: 'Shopdaten gelöscht am 2026-10-04' }), false)
|
||||||
|
assert.equal(hatLoeschVermerk({ featureKey: 'shop' }), false)
|
||||||
|
})
|
||||||
Reference in new issue
Block a user