Gästetexte des Terminplaners: Entwurf-Kennzeichnung entfernt
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c1266fcce7
commit
495d5ad9ca
11 files changed
+79
-56
No files matched your search
@@ -1,6 +1,6 @@
|
||||
import { test } from 'node:test'
|
||||
import assert from 'node:assert/strict'
|
||||
import { readFileSync } from 'node:fs'
|
||||
import { existsSync, readFileSync } from 'node:fs'
|
||||
import { createHash } from 'node:crypto'
|
||||
import { config } from '../server/config.js'
|
||||
import {
|
||||
@@ -17,7 +17,6 @@ import {
|
||||
GESUNDHEIT_HINWEIS,
|
||||
} from '../server/services/termine/rechtstexte.js'
|
||||
|
||||
// ENTWURF – nur Pilot, vor Einsatz bei fremden Betrieben prüfen.
|
||||
// Die Belehrung wird gegen den Wortlaut der Anlagen 1 und 2 zu Art. 246a EGBGB geprueft (docs/rechtliches/quellen/,
|
||||
// abgerufen 2026-10-02): jeder Absatz des Musters muss unveraendert im Ergebnis stehen, nur die Luecken sind gefuellt.
|
||||
|
||||
@@ -246,8 +245,8 @@ test('Formular-Hinweis: Sie ist die Vorgabe, Aufbewahrung 90 Tage ohne gültigen
|
||||
|
||||
// ---------------------------------------------------------------- Datenschutz-Absatz „Online-Terminbuchung“ (Quelle der Einbauanleitung und der Doku)
|
||||
|
||||
test('Rechtstexte sind Entwurf, bis Block F die ENTWURF-Köpfe und diese Konstante zusammen entfernt', () => {
|
||||
assert.equal(RECHTSTEXTE_ENTWURF, true)
|
||||
test('D1 (f): die Rechtstexte gelten nicht mehr als Entwurf (RECHTSTEXTE_ENTWURF === false)', () => {
|
||||
assert.equal(RECHTSTEXTE_ENTWURF, false)
|
||||
})
|
||||
|
||||
const DS_SCHALTER = ['telefonFeld', 'freitext', 'erinnerung', 'widerruf', 'telefon']
|
||||
@@ -508,13 +507,29 @@ const DOKUMENTE = [
|
||||
'docs/rechtliches/termine-widerrufsbelehrung-muster.md',
|
||||
'docs/rechtliches/termine-datenschutz-absatz.md',
|
||||
'docs/rechtliches/termine-hinweise.md',
|
||||
'docs/rechtliches/termine-datenschutz-6c-entwurf.md',
|
||||
'docs/rechtliches/termine-datenschutz-6c.md',
|
||||
]
|
||||
|
||||
test('Jedes Rechtstext-Dokument beginnt mit dem Entwurfs-Kopf', () => {
|
||||
// Das Wort ENTWURF als Kennzeichnung; ENTWURF_BANNER und RECHTSTEXTE_ENTWURF (Bezeichner im Code) zählen nicht
|
||||
const ENTWURF_WORT = /ENTWURF(?![_A-Z])/
|
||||
|
||||
test('kein_entwurf_mehr: kein ENTWURF-Kopf in den vier Dokumenten, keiner in den Texten von rechtstexte.js und in der Einbau-Doku; die Konstante steht auf false', () => {
|
||||
for (const rel of DOKUMENTE) {
|
||||
assert.equal(lies(rel).split('\n')[0].trim(), KOPF, rel)
|
||||
const md = lies(rel)
|
||||
assert.ok(!ENTWURF_WORT.test(md), `${rel}: ENTWURF steht noch im Dokument`)
|
||||
assert.notEqual(md.split('\n')[0].trim(), KOPF, `${rel}: der Entwurfs-Kopf steht noch in der ersten Zeile`)
|
||||
assert.ok(md.startsWith('# '), `${rel}: das Dokument beginnt mit der Überschrift`)
|
||||
}
|
||||
assert.ok(!existsSync(new URL('../docs/rechtliches/termine-datenschutz-6c-entwurf.md', import.meta.url)), 'die 6c-Datei heißt nicht mehr -entwurf')
|
||||
const quelle = lies('server/services/termine/rechtstexte.js')
|
||||
assert.ok(!ENTWURF_WORT.test(quelle.replace(/RECHTSTEXTE_ENTWURF/g, '')), 'rechtstexte.js: ENTWURF in Kopf oder Kommentar (nur der Bezeichner RECHTSTEXTE_ENTWURF ist erlaubt)')
|
||||
assert.ok(/export const RECHTSTEXTE_ENTWURF = false\b/.test(quelle))
|
||||
assert.equal(RECHTSTEXTE_ENTWURF, false)
|
||||
const einbau = lies('docs/funktionen/termine-einbau.md')
|
||||
assert.ok(!ENTWURF_WORT.test(einbau), 'termine-einbau.md: ENTWURF')
|
||||
assert.ok(!/nur beim Pilotkunden einsetzen|Solange der Kopf dort steht/.test(einbau), 'termine-einbau.md Abschnitt 6 ohne die Pilot-Einschränkung')
|
||||
// die Gäste-Dokumente haben keine offene Rechtsprüfungs-Liste mehr (die Fragen stehen im Kanzlei-Paket)
|
||||
for (const rel of DOKUMENTE.slice(0, 3)) assert.ok(!/^## Für die Rechtsprüfung/m.test(lies(rel)), `${rel}: Liste „Für die Rechtsprüfung offen“ steht noch`)
|
||||
})
|
||||
|
||||
test('Hinweise-Dokument: Formular-Hinweis (Sie/Du) und alle Zustimmungstexte stehen wörtlich darin', () => {
|
||||
@@ -553,7 +568,7 @@ test('Datenschutz-Absatz: Löschfristen der Vorgaben, Sie- und Du-Fassung, Auftr
|
||||
})
|
||||
|
||||
test('6c-Entwurf: nur als Entwurfsdatei, public/datenschutz.html bleibt unverändert (ohne Abschnitt 6c)', () => {
|
||||
const md = lies('docs/rechtliches/termine-datenschutz-6c-entwurf.md')
|
||||
const md = lies('docs/rechtliches/termine-datenschutz-6c.md')
|
||||
assert.ok(md.includes('6c. Online-Terminbuchung'))
|
||||
assert.ok(md.includes('Auftragsverarbeiter'))
|
||||
assert.ok(/nicht (in|auf) .*(einbauen|veröffentlich)|nicht eingebaut|nicht veröffentlicht/i.test(md))
|
||||
|
||||
Reference in new issue
Block a user