Gästetexte: Hinweis-Dokument ohne Entwurf-Wort, Archiv-Schutz
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
495d5ad9ca
commit
722c686690
5 files changed
+62
-9
No files matched your search
@@ -546,6 +546,19 @@ test('Hinweise-Dokument: Formular-Hinweis (Sie/Du) und alle Zustimmungstexte ste
|
||||
}
|
||||
})
|
||||
|
||||
test('hinweise_ohne_entwurf: das Hinweise-Dokument nennt kein „Entwurf“ (auch nicht klein) und sagt, dass Vorlagen und Widget für die Abschnitte 4 bis 6 maßgeblich sind', () => {
|
||||
const md = lies('docs/rechtliches/termine-hinweise.md').replace(/\r/g, '')
|
||||
assert.ok(!/Entwurf/i.test(md), 'termine-hinweise.md: das Wort Entwurf steht noch im Dokument')
|
||||
assert.ok(md.includes('## 5. Widerrufshinweis in der Bestätigungs-E-Mail'))
|
||||
assert.ok(md.includes('## 6. Widerrufsfunktion (Texte)'))
|
||||
const kopf = md.split('\n')[2]
|
||||
assert.ok(kopf.includes('Die Abschnitte 4 bis 6 geben Texte des Widgets und der Mails wieder'), 'Zeile 3 sagt, was die Abschnitte 4 bis 6 sind')
|
||||
assert.ok(kopf.includes('maßgeblich sind die Mailvorlagen und das Widget'), 'Zeile 3 nennt Vorlagen und Widget als maßgeblich')
|
||||
// die genannten Quellen gibt es
|
||||
assert.ok(md.includes('server/mail-templates/G02 Termin bestaetigt.html') && existsSync(new URL('../server/mail-templates/G02 Termin bestaetigt.html', import.meta.url)))
|
||||
assert.ok(md.includes('server/services/termine/einstellungen.js') && existsSync(new URL('../server/services/termine/einstellungen.js', import.meta.url)))
|
||||
})
|
||||
|
||||
test('Datenschutz-Absatz: Löschfristen der Vorgaben, Sie- und Du-Fassung, Auftragsverarbeiter und Gesundheitshinweis', () => {
|
||||
const md = lies('docs/rechtliches/termine-datenschutz-absatz.md').replace(/\r/g, '')
|
||||
assert.ok(/Fassung Sie/i.test(md) && /Fassung Du/i.test(md))
|
||||
|
||||
@@ -60,6 +60,35 @@ test('archiv_aktuelle_fassung: --check vergleicht mit der eingecheckten Datei (E
|
||||
assert.match(meldungen[0], /Aufruf: node scripts\/termine-texte-archiv\.mjs \[--check\]/)
|
||||
})
|
||||
|
||||
test('archiv_schutz: eine abweichende Datei der aktuellen Fassung wird nur mit --force überschrieben; gleiche oder neue Dateien bleiben erlaubt', (t) => {
|
||||
const root = mitTempRoot(t)
|
||||
const ziel = join(root, archivPfad())
|
||||
const meldungen = []
|
||||
const mitFehler = { log: () => {}, fehler: (m) => meldungen.push(m) }
|
||||
// neue Datei und identische Datei: erlaubt
|
||||
assert.equal(lauf([], { ...mitFehler, root }), 0)
|
||||
assert.equal(readFileSync(ziel, 'utf8'), baueArchiv())
|
||||
assert.equal(lauf([], { ...mitFehler, root }), 0, 'derselbe Inhalt darf erneut geschrieben werden')
|
||||
assert.deepEqual(meldungen, [])
|
||||
// abweichende Datei (zum Beispiel die ausgelieferte Fassung mit einem nachträglich geänderten Text): Exit 1, Datei unverändert
|
||||
const ausgeliefert = `${baueArchiv()}Nachträglich geändert.\n`
|
||||
writeFileSync(ziel, ausgeliefert)
|
||||
assert.equal(lauf([], { ...mitFehler, root }), 1)
|
||||
assert.equal(readFileSync(ziel, 'utf8'), ausgeliefert, 'ohne --force bleibt die Datei, wie sie war')
|
||||
assert.match(meldungen[0], /weicht ab/)
|
||||
assert.match(meldungen[0], /--force/)
|
||||
assert.ok(meldungen[0].includes(archivPfad()), 'die Meldung nennt die Datei')
|
||||
// mit --force wird überschrieben
|
||||
assert.equal(lauf(['--force'], { ...mitFehler, root }), 0)
|
||||
assert.equal(readFileSync(ziel, 'utf8'), baueArchiv())
|
||||
// --check bleibt schreibfrei; --force zusammen mit --check ist ein falscher Aufruf
|
||||
writeFileSync(ziel, ausgeliefert)
|
||||
assert.equal(lauf(['--check'], { ...mitFehler, root }), 1)
|
||||
assert.equal(readFileSync(ziel, 'utf8'), ausgeliefert)
|
||||
assert.equal(lauf(['--check', '--force'], { ...mitFehler, root }), 2)
|
||||
assert.equal(readFileSync(ziel, 'utf8'), ausgeliefert)
|
||||
})
|
||||
|
||||
test('archiv_inhalt: alle Gästetexte stehen wörtlich im Archiv, die Betriebsangaben als Platzhalter', () => {
|
||||
const text = baueArchiv()
|
||||
const zitat = (s) => s.split('\n').map((z) => (z === '' ? '>' : `> ${z}`)).join('\n')
|
||||
|
||||
Reference in new issue
Block a user