29 lines
1.5 KiB
JavaScript
29 lines
1.5 KiB
JavaScript
import { test } from 'node:test'
|
|
import assert from 'node:assert/strict'
|
|
import { readFileSync } from 'node:fs'
|
|
|
|
// Review Focus 1 als Quelltext-Pin: Die Kundenart und der Beginn der Bestellung kommen nie aus dem Body der Anfrage
|
|
const quelle = (datei) => readFileSync(new URL(`../${datei}`, import.meta.url), 'utf8')
|
|
|
|
test('Server-Routen lesen die Kundenart nie aus dem Body', () => {
|
|
for (const datei of ['server/routes/abo.js', 'server/routes/takeoverCredits.js']) {
|
|
const q = quelle(datei)
|
|
assert.doesNotMatch(q, /\b(?:req\.)?body\??\.(kundenart|unternehmer)\b/, datei)
|
|
assert.doesNotMatch(q, /\{[^}]*\b(kundenart|unternehmer)\b[^}]*\}\s*=\s*(?:req\.)?body/, datei)
|
|
assert.doesNotMatch(q, /\{[^}]*\b(kundenart|unternehmer)\b[^}]*\}\s*=\s*req\.body/, datei)
|
|
}
|
|
})
|
|
|
|
test('Kundenart stammt aus kundenartWirksam, nicht aus Antwort-Daten des Clients', () => {
|
|
assert.match(quelle('server/routes/abo.js'), /kundenartWirksam\(/)
|
|
assert.match(quelle('server/routes/takeoverCredits.js'), /kundenartWirksam\(/)
|
|
})
|
|
|
|
test('Fassung 6 liest startChoice nur im alten Weg (Fassung 5)', () => {
|
|
const q = quelle('server/routes/abo.js')
|
|
const checkout = q.slice(q.indexOf("router.post('/checkout'"), q.indexOf("router.post('/portal'"))
|
|
// in Fassung 6 bestimmt allein beginnWahl den Beginn; startChoice fließt nur über den alten Zweig ein
|
|
assert.match(checkout, /const beginnWahl = sechs \? \(kundenart === 'unternehmen' \|\| earlyStart === true \? 'sofort' : 'nach_frist'\) : startChoice/)
|
|
assert.doesNotMatch(checkout, /startChoice:\s*startChoice/)
|
|
})
|