Webshop nach TP2-Merge: Shop-Mails in der Klasse normal (kein zusätzliches notEqual in der Outbox-Abfrage)

Seit 2c7cd26 kostet jede Art in VORRANG/NACHRANGIG ein notEqual in der Abfrage der Klasse normal; live stößt die URL
bei nginx an (414). G09–G15 laufen deshalb in der Klasse normal.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
ClaudeandClaude Opus 5.5 committed 2026-10-05 14:59:12 +00:00
1 parent a4a18a1c89
commit cab9c33db6
3 files changed
+10 -10

No files matched your search

+4 -4
View File
@@ -72,11 +72,11 @@ const ID_BLOCK = 50
const iso = (wertMs) => new Date(wertMs).toISOString()
/**
* Mails, die vor allen anderen rausgehen duerfen (Bestaetigung, Termin, Eingangsbestaetigung des Widerrufs). Dazu die beiden
* Pflichtmails des Webshops: G09 Bestellbestaetigung (dauerhafter Datentraeger), G12 Eingangsbestaetigung des Widerrufs und G15 Eingang der Bestellung (SEPA, Zahlung noch offen). Die
* uebrigen Shop-Mails G10, G11, G13, G14 sind 'normal'.
* Mails, die vor allen anderen rausgehen duerfen (Bestaetigung, Termin, Eingangsbestaetigung des Widerrufs). Die Shop-Mails
* G09 bis G15 sind bewusst 'normal' (jede Minute bedient): jede Art in VORRANG/NACHRANGIG kostet in der Abfrage der Klasse
* 'normal' ein notEqual mehr, und die URL stoesst live bei nginx an (414, Messung G5 im TP2-Livegang).
*/
export const MAIL_VORRANG = Object.freeze(['G01', 'G02', 'G08', 'G09', 'G12', 'G15'])
export const MAIL_VORRANG = Object.freeze(['G01', 'G02', 'G08'])
/** Mails, die zuerst warten (Erinnerung, Hinweise an den Betrieb): sie nehmen nie die ganze Stunde. */
export const MAIL_NACHRANGIG = Object.freeze(['G05', 'K20', 'K21'])
+3 -3
View File
@@ -320,7 +320,7 @@ test('G11: Abholort und Hinweis des Händlers, ersatzweise ein Standardhinweis',
assert.equal(sink.sent[0].subject, 'Ihre Bestellung 26-K7QM2X ist abholbereit')
})
test('G12: ohne passende Bestellung, an die Adresse der Erklärung, mit Datum und Uhrzeit; Vorrang-Klasse', async () => {
test('G12: ohne passende Bestellung, an die Adresse der Erklärung, mit Datum und Uhrzeit', async () => {
const erg = await anKaeufer('G12', ctxMit(), null, { an: 'kaeufer@example.com', bookingId: 'w_widerruf01', name: 'Kai Käufer', bestellnummer: '26-ZZZZZZ', eingang: JETZT, nachricht: 'Ich widerrufe.' }, JETZT)
assert.equal(erg.ok, true)
assert.equal(erg.eintrag.bookingId, 'w_widerruf01')
@@ -378,9 +378,9 @@ test('anKaeufer wirft nie: unbekannte Art, fehlende Adresse und Speicherfehler e
assert.equal(sink.sent.length, 0)
})
test('Käufermails zählen als Gästemails: G09 und G12 mit Vorrang, die übrigen normal', async () => {
test('Käufermails laufen in der Klasse normal (keine zusätzlichen notEqual in der Abfrage)', async () => {
const { mailKlasse } = await import('../server/services/termine/outbox.js')
assert.deepEqual(['G09', 'G10', 'G11', 'G12', 'G13', 'G14'].map(mailKlasse), ['vorrang', 'normal', 'normal', 'vorrang', 'normal', 'normal'])
assert.deepEqual(['G09', 'G10', 'G11', 'G12', 'G13', 'G14'].map(mailKlasse), ['normal', 'normal', 'normal', 'normal', 'normal', 'normal'])
})
// ---------------------------------------------------------------- Händlermails
+3 -3
View File
@@ -308,10 +308,10 @@ test('Fehlversuche verbrauchen kein Stundenbudget (auch nicht Anmelde- oder Verb
/** Eintrag einer bestimmten Funktion und Art (Vorlage bleibt G01: die Warteschlange prueft Art und Vorlage nicht gegeneinander). */
const von = (featureId, art, nummer, extra = {}) => eintrag({ featureId, art, bookingId: `b_${featureId}_${art}_${nummer}`, ...extra })
test('mailKlasse: G01/G02/G08 (Webshop: G09/G12/G15) vorrang, G05/K20/K21 nachrangig, alle anderen normal', () => {
assert.deepEqual(MAIL_VORRANG, ['G01', 'G02', 'G08', 'G09', 'G12', 'G15'])
test('mailKlasse: G01/G02/G08 vorrang, G05/K20/K21 nachrangig, alle anderen normal (auch die Webshop-Mails G09–G15)', () => {
assert.deepEqual(MAIL_VORRANG, ['G01', 'G02', 'G08'])
assert.deepEqual(MAIL_NACHRANGIG, ['G05', 'K20', 'K21'])
const erwartet = { G01: 'vorrang', G02: 'vorrang', G03: 'normal', G04: 'normal', G05: 'nachrangig', G06: 'normal', G07: 'normal', G08: 'vorrang', G09: 'vorrang', G10: 'normal', G11: 'normal', G12: 'vorrang', G13: 'normal', G14: 'normal', G15: 'vorrang', K20: 'nachrangig', K21: 'nachrangig' }
const erwartet = { G01: 'vorrang', G02: 'vorrang', G03: 'normal', G04: 'normal', G05: 'nachrangig', G06: 'normal', G07: 'normal', G08: 'vorrang', G09: 'normal', G10: 'normal', G11: 'normal', G12: 'normal', G13: 'normal', G14: 'normal', G15: 'normal', K20: 'nachrangig', K21: 'nachrangig' }
assert.deepEqual(Object.fromEntries(Object.keys(erwartet).map((art) => [art, mailKlasse(art)])), erwartet)
assert.equal(mailKlasse('unbekannt'), 'normal')
})