Datenschutz (Entwurf): unsere Abos, Überwachung mit UptimeRobot
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
1 parent
fead8fdd5a
commit
0098899ac6
3 files changed
+37
-9
No files matched your search
@@ -200,3 +200,29 @@ test('Alle internen Links und Querverweise treffen', () => {
|
||||
for (const [ref, nr] of v4Section('hosting', 'wartung').matchAll(/\bNr\. (\d+)/g)) assert.ok(Number(nr) <= maxA, `A: ${ref}`)
|
||||
for (const [ref, nr] of v4Section('wartung', 'widerruf').matchAll(/\bNr\. (\d+)/g)) assert.ok(Number(nr) <= maxB, `B: ${ref}`)
|
||||
})
|
||||
|
||||
// --- Datenschutzerklärung (Plan 2, Task 2) ---
|
||||
|
||||
test('Datenschutz: Abos, UptimeRobot, Stand wie termsVersion', () => {
|
||||
const ds = strip(read('public/datenschutz.html'))
|
||||
for (const s of ['Abos und Zahlung über Stripe', 'UptimeRobot s. r. o.', 'Obchodná 507/2', '811 06 Bratislava',
|
||||
'Standardvertragsklauseln', 'im Rahmen unserer Abos']) assert.ok(ds.includes(s), s)
|
||||
// Produktneutral: keine Formulierung mehr, die nur das Wartungs-Abo meint, wo beide Abos gemeint sind
|
||||
for (const s of ['insbesondere das Wartungs-Abo', 'Schließen Sie das Wartungs-Abo', 'im Rahmen des Wartungs-Abos',
|
||||
'für das Wartungs-Abo über Stripe']) assert.ok(!ds.includes(s), `noch da: ${s}`)
|
||||
// Abschnitt 3 und 12: Überwachung der Erreichbarkeit durch UptimeRobot, Drittland auf Grundlage von SCC
|
||||
const hosting = between(ds, '3. Hosting', '4. Cookies')
|
||||
for (const s of ['UptimeRobot s. r. o., Obchodná 507/2, 811 06 Bratislava (Slowakei)', 'Art. 46 Abs. 2 lit. c DSGVO',
|
||||
'Auftragsverarbeitung', 'Nutzungsbedingungen']) assert.ok(hosting.includes(s), `Abschnitt 3: ${s}`)
|
||||
assert.ok(between(ds, '12. Empfänger im Überblick', '13. Ihre Rechte').includes('UptimeRobot'))
|
||||
// Abschnitt 7: Nachweisdaten auch bei Wechsel und Zusatzspeicher, Aufbewahrung wie bisher
|
||||
const abos = between(ds, '7. Abos und Zahlung über Stripe', '8. E-Mail')
|
||||
for (const s of ['Wechsel', 'Zusatzspeicher', 'Kündigung', 'Widerruf', 'Version der Vertragsbedingungen',
|
||||
'drei Jahre nach Vertragsende']) assert.ok(abos.includes(s), `Abschnitt 7: ${s}`)
|
||||
// Stand der Erklärung = Datum aus termsVersion (JJJJ-MM-TT-v4); das Freigabedatum kommt erst beim Livegang (Task 20)
|
||||
const [, y, mo, d] = /^(\d{4})-(\d{2})-(\d{2})-v4$/.exec(config.abo.termsVersion)
|
||||
const stand = /Stand (\d{2}\.\d{2}\.\d{4})/.exec(ds)
|
||||
assert.ok(stand, 'Stand fehlt')
|
||||
assert.equal(stand[1], `${d}.${mo}.${y}`)
|
||||
assert.ok(read('scripts/build-legal-pdfs.sh').includes('pdf public/datenschutz.html docs/WEBklar-Datenschutzerklaerung.pdf'))
|
||||
})
|
||||
Reference in new issue
Block a user