TP2 Abschlussprüfung: Zahlung/Team (Wiederzustellung, K16-Warnung, Sperrschlüssel)
- adoptPaidSession übernimmt ein erneut zugestelltes checkout.session.completed nicht mehr, wenn das Dokument nach 30 Tagen zurückgesetzt wurde (off, purchaseStatus zurueckgesetzt, gleiche Sitzung): kein Setup, kein Ticket, keine K15/T16 - meldeFreigeschaltet liefert true/false; die Staff-Aktivierung in Textform vermerkt eine nicht gesendete K16 mit Unterlagen in adminNote und antwortet mit warnung: true - disable() nutzt die Sperre feature-activate:<id> statt feature-disable:<id> (Freischaltung und Abschalten überholen sich nicht) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
4dc447ed33
commit
b974b3a3ec
7 files changed
+153
-6
No files matched your search
@@ -1444,6 +1444,44 @@ test('textform_pflicht_modus_on: ohne Angaben 400, mit gültigen Angaben 200, Na
|
||||
assert.equal(mails.sent.length, mailsVorher + 2, 'je eine K16 für den Kunden und den Chat-Kunden, sonst nichts')
|
||||
})
|
||||
|
||||
const K16_NICHT_GESENDET = 'K16 mit Unterlagen NICHT gesendet – von Hand nachsenden'
|
||||
|
||||
test('textform A2: scheitert der Versand von K16 mit den Unterlagen, bleibt die Funktion freigeschaltet, adminNote und warnung:true sagen es; Erfolg und Kunde ohne Adresse', async (t) => {
|
||||
modusMerken(t)
|
||||
termineMit('on', [])
|
||||
t.mock.method(console, 'error', () => {})
|
||||
|
||||
// Erfolg: keine Warnung, keine Notiz
|
||||
const gut = legeKundeF13()
|
||||
const ok = await aktivierenF13(gut, feldF13(gut))
|
||||
assert.equal(ok.status, 200, JSON.stringify(ok.body))
|
||||
assert.equal(ok.body.warnung, undefined, 'ohne Fehler kein Feld warnung')
|
||||
assert.doesNotMatch((await sf.getFeatureDoc(gut.customerId, gut.projectId, 'termine')).adminNote, /NICHT gesendet/)
|
||||
|
||||
// Versandfehler: Freischaltung und Nachweis stehen, die Warnung kommt zurueck
|
||||
const k = legeKundeF13()
|
||||
setMailTransportForTests({ sendMail: async () => { throw new Error('SMTP weg') } })
|
||||
t.after(() => setMailTransportForTests(mails))
|
||||
const res = await aktivierenF13(k, feldF13(k))
|
||||
assert.equal(res.status, 200, JSON.stringify(res.body))
|
||||
assert.equal(res.body.warnung, true)
|
||||
const doc = await sf.getFeatureDoc(k.customerId, k.projectId, 'termine')
|
||||
assert.equal(doc.state, 'active', 'die Freischaltung bleibt')
|
||||
assert.equal(consentsDesF13(k.projectId).length, 1, 'der Nachweis bleibt')
|
||||
assert.ok(doc.adminNote.includes(K16_NICHT_GESENDET), doc.adminNote)
|
||||
assert.match(doc.adminNote, /^\d{4}-\d\d-\d\dT[\d:.]+Z System: K16 mit Unterlagen NICHT gesendet – von Hand nachsenden \| .*Andrej: activate/)
|
||||
assert.equal(featuresOf(res, k.projectId).termine.adminNote, doc.adminNote, 'das Ticketsystem liest die Notiz mit der Antwort')
|
||||
|
||||
// Kunde ohne E-Mail-Adresse: K16 kann nicht raus, auch das ist eine Warnung
|
||||
setMailTransportForTests(mails)
|
||||
const leer = legeKundeF13({ email: '' })
|
||||
aw.docs('customers').get(leer.customerId).email = ''
|
||||
const ohneAdresse = await aktivierenF13(leer, feldF13(leer))
|
||||
assert.equal(ohneAdresse.status, 200, JSON.stringify(ohneAdresse.body))
|
||||
assert.equal(ohneAdresse.body.warnung, true)
|
||||
assert.ok((await sf.getFeatureDoc(leer.customerId, leer.projectId, 'termine')).adminNote.includes(K16_NICHT_GESENDET))
|
||||
})
|
||||
|
||||
test('textform_entfaellt: Modus off und pilot, Modus on mit Pilotadresse, News und Abschalten brauchen keine Angaben und schreiben keinen Nachweis', async (t) => {
|
||||
modusMerken(t)
|
||||
const mailsVorher = mails.sent.length
|
||||
|
||||
Reference in new issue
Block a user