Übernahmegutschrift: Verrechnung nach Wechsel, Mail K09, Leitfaden, Admin zeigt das Abo, Tests
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
0c2e50fc20
commit
e456c3de69
9 files changed
+80
-23
No files matched your search
@@ -9,6 +9,11 @@ const { config } = await import('../server/config.js')
|
||||
// Fest eingetragen, weil die Tests auch ohne git laufen muessen (node:20-alpine).
|
||||
const V3_SHA256 = '1c9e4b002dcd5d7896bbda24c573e56544b7123e3a88d154e5db77bd2855bc47'
|
||||
|
||||
// = sha256 des Blocks ab `const TAKEOVER_CONDITIONS` bis vor das schliessende ] in public/app.js, je conditionsVersion
|
||||
// (Nachweis der Zustimmung). Aendert sich der Text der Bedingungen, muss config.takeover.conditionsVersion hochgezogen
|
||||
// und der neue Hash hier eingetragen werden; die Fehlermeldung des Tests nennt ihn.
|
||||
const TAKEOVER_CONDITIONS_SHA256 = { '2026-09-27': '2b7a745cb599c0ab28f20615a745bd86da6faa8d120391ca56beac35a0473e62' }
|
||||
|
||||
const file = (rel) => new URL(`../${rel}`, import.meta.url)
|
||||
const read = (rel) => readFileSync(file(rel), 'utf8')
|
||||
const sha256 = (rel) => createHash('sha256').update(readFileSync(file(rel))).digest('hex')
|
||||
@@ -335,16 +340,17 @@ test('Übernahmegutschrift und Leitfaden: produktneutral', () => {
|
||||
assert.notEqual(config.takeover.conditionsVersion, '2026-09-25', 'conditionsVersion hochgezogen')
|
||||
const tc = read('server/services/takeoverCredits.js')
|
||||
assert.ok(!/Wartungs-Abo (läuft|ist beendet)|kein (laufendes )?Wartungs-Abo/.test(tc), 'Prüf-Labels und Fehlermeldungen sagen „Abo“')
|
||||
assert.ok(!tc.includes('config.stripe.priceAmountCents'), 'Plausibilität gegen den Produktpreis, nicht gegen den Wartungspreis')
|
||||
const lf = read('docs/leitfaden-empfehlungsgeber.html')
|
||||
assert.ok(lf.includes('Hosting-Abo') && lf.includes('beliebig viele Postfächer'), 'Leitfaden nennt beide Abos')
|
||||
// Festlegungen zur Umsetzung: Postfächer im Plural (Wartungs-Abo: beliebig viele), Entwurfsdatum als Version,
|
||||
// Karte im Portal und Checkliste ohne Produktnamen, Preisvergleich je Produkt
|
||||
// Karte im Portal und Checkliste ohne Produktnamen (Preisvergleich je Produkt: test/takeoverCredits.test.js)
|
||||
assert.ok(cond.includes('E-Mail-Postfächer'))
|
||||
assert.match(config.takeover.conditionsVersion, /^\d{4}-\d{2}-\d{2}$/)
|
||||
const condHash = createHash('sha256').update(cond).digest('hex')
|
||||
assert.equal(condHash, TAKEOVER_CONDITIONS_SHA256[config.takeover.conditionsVersion],
|
||||
`Bedingungen der Übernahmegutschrift geändert: conditionsVersion hochziehen und Hash eintragen (${condHash})`)
|
||||
assert.ok(app.includes('sobald Ihr Abo läuft') && !app.includes('sobald Ihr Wartungs-Abo läuft'))
|
||||
assert.ok(!tc.includes('durch das Wartungs-Abo ersetzt'))
|
||||
assert.ok(tc.includes("getProduct(subscription?.productKey || 'wartung')"))
|
||||
// Leitfaden: beide Preise mit § 19 UStG, Zusatzspeicher, Wechsel, Gutschrift für beide Abos, Bestellweg „Verträge“
|
||||
const lfText = strip(lf)
|
||||
for (const s of ['zusammen 5 GB', 'Zusatzspeicher', 'Wechsel', 'Übernahmegutschrift', 'beiden Abos', '„Verträge“']) assert.ok(lfText.includes(s), s)
|
||||
|
||||
Reference in new issue
Block a user