Shop Review B I-1: Eingangsmail G15 bei SEPA, G09 nimmt die Bestellung ausdruecklich an

G15 "Wir haben Ihre Bestellung erhalten" geht einmal raus, sobald Stripe die Sitzung
abgeschlossen, die Zahlung aber noch nicht gemeldet hat (meldeEingang, Marker mailsEingangAt,
aus dem Webhook und aus pruefeOffene). G09 sagt ausdruecklich, dass der Kaufvertrag mit der
Mail geschlossen ist, trennt Bestell- und Zahlungsdatum und nennt die Telefonnummer des
Anbieters.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 09:44:48 +00:00
1 parent 1b7aa9ebe3
commit 77fb8c8f44
11 files changed
+238 -27

No files matched your search

+30
View File
@@ -146,6 +146,19 @@ test('kaeuferWerte: Links fallen ohne Impressum-/Datenschutz-Adresse auf den Sho
assert.equal(w.datum, '05.10.2026', 'ohne Bestellung gilt das übergebene Datum')
})
test('kaeuferWerte I-1: Bestelldatum ist der Tag der Bestellung, Zahlungsdatum der des Zahlungseingangs (SEPA Tage später)', () => {
const w = kaeuferWerte(ctxMit(), bestellung({ erstelltAt: '2026-10-05T10:00:00.000Z', bezahltAt: '2026-10-08T08:30:00.000Z' }), JETZT)
assert.equal(w.datum, '05.10.2026')
assert.equal(w.zahlungsdatum, '08.10.2026')
const offen = kaeuferWerte(ctxMit(), bestellung({ bezahltAt: undefined }), JETZT)
assert.equal(offen.zahlungsdatum, '05.10.2026', 'ohne Zahlung gilt das Bestelldatum')
})
test('kaeuferWerte M-5: Telefonnummer des Anbieters steht in der Anbieterzeile, wenn vorhanden', () => {
const mit = kaeuferWerte(ctxMit(einstellungen({ anbieter: { ...einstellungen().anbieter, telefon: '0 63 02 / 12 34' } })), bestellung(), JETZT)
assert.equal(mit.anbieter_zeile, 'Erika Muster, Hauptstr. 1, 67722 Winnweiler, info@toepferei.example, Tel. 0 63 02 / 12 34')
})
// ---------------------------------------------------------------- Käufermails
test('G09: wird mit Shopname als Absender und Antwort an den Händler eingereiht, kein BCC, Rechtstexte stehen in der Mail', async () => {
@@ -179,6 +192,23 @@ test('G09: wird mit Shopname als Absender und Antwort an den Händler eingereiht
assert.deepEqual(warnLog(), [], 'keine Platzhalter-Warnung der Vorlage')
})
test('G15: Eingang der Bestellung geht an die übergebene Adresse (noch keine Käuferadresse an der Bestellung), ohne Rechtstexte und ohne Vertragsschluss', async () => {
const offen = bestellung({ kaeuferEmail: undefined, bezahltAt: undefined, status: 'offen' })
const erg = await anKaeufer('G15', ctxMit(), offen, { an: 'sepa@example.com' }, JETZT)
assert.equal(erg.ok, true)
await warteAufVersand()
const [doc] = eintraege()
assert.equal(doc.art, 'G15')
assert.equal(doc.bookingId, 'o_bestellung01')
assert.equal(sink.sent.length, 1)
const mail = sink.sent[0]
assert.equal(mail.to[0].address, 'sepa@example.com')
assert.equal(mail.subject, 'Wir haben Ihre Bestellung 26-K7QM2X erhalten')
assert.match(mail.text, /noch in Bearbeitung/)
assert.match(mail.text, /2 × Tasse \(blau\) – 24,00/)
assert.doesNotMatch(mail.text, /Kaufvertrag ist damit geschlossen|AGB Zeile 1|Belehrung Zeile 1/)
})
test('G09 Abholung: Abholort statt Lieferadresse', async () => {
const erg = await anKaeufer('G09', ctxMit(), bestellung({}, { lieferart: 'abholung', lieferadresse: null, land: null, positionen: [{ name: 'Tasse', menge: 1, summeCent: 1200, widerruf: 'gesetzlich' }] }), {}, JETZT)
assert.equal(erg.ok, true)