Shop J2: Datenschutzerklärung Abschnitt 6d Webshop (Auftragsverarbeitung, Stripe Connect, Fristen), PDF neu, Test
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
172d9f1778
commit
9283ff42c1
4 files changed
+39
-4
No files matched your search
+31
-2
@@ -548,11 +548,11 @@ test('legal_datenschutz_kundenansicht: Abschnitt 6 nennt Kundenansicht, Sperren,
|
||||
|
||||
// ---------------------------------------------------------------- Abschnitt 6c und Funktionsbestellung (TP2 F12a)
|
||||
|
||||
/** Der Block von <h2 id="termine"> bis vor <h2>7. in public/datenschutz.html (roh, mit Tags). */
|
||||
/** Der Block von <h2 id="termine"> bis vor die nächste Überschrift (6d Webshop) in public/datenschutz.html (roh, mit Tags). */
|
||||
const block6c = (html = read(DS)) => {
|
||||
const a = html.indexOf('<h2 id="termine">')
|
||||
assert.ok(a >= 0, '<h2 id="termine"> fehlt')
|
||||
const b = html.indexOf('<h2>7. ', a)
|
||||
const b = html.indexOf('<h2', a + 5)
|
||||
assert.ok(b > a)
|
||||
return html.slice(a, b)
|
||||
}
|
||||
@@ -593,6 +593,35 @@ test('legal_datenschutz_termine: Abschnitt 6c steht zwischen 6b und 7 und nennt
|
||||
])
|
||||
})
|
||||
|
||||
test('legal_datenschutz_webshop: Abschnitt 6d steht zwischen 6c und 7 und nennt Rolle, Stripe Connect, Orte und Fristen', () => {
|
||||
const html = read(DS)
|
||||
const termine = html.indexOf('id="termine"')
|
||||
const webshop = html.indexOf('id="webshop"')
|
||||
const sieben = html.indexOf('<h2>7. ')
|
||||
assert.ok(termine > 0 && webshop > termine && sieben > webshop, 'Reihenfolge 6c < 6d < 7')
|
||||
assert.equal(html.split('id="webshop"').length - 1, 1)
|
||||
assert.ok(html.includes('<h2 id="webshop">6d. Webshop auf Websites unserer Kunden</h2>'))
|
||||
const roh = html.slice(webshop, sieben)
|
||||
assert.ok(!roh.includes('<!--'), 'kein Kommentar im Block')
|
||||
const text = strip(roh)
|
||||
assert.ok(text.includes('ausschließlich als Auftragsverarbeiter nach den Weisungen des jeweiligen Kunden'))
|
||||
assert.ok(text.includes('Auftragsverarbeitungsvertrag Webshop'))
|
||||
// Stripe Connect: Weitergabe von E-Mail, Website und Projektname auf Klick, Konto-ID und Stand, Rechtsgrundlage, Hinweise von Stripe
|
||||
assert.ok(text.includes('Stripe Payments Europe, Limited') && text.includes('Dublin'))
|
||||
assert.ok(text.includes('seine E-Mail-Adresse, die Adresse seiner Website und den Namen seines Projekts'))
|
||||
assert.ok(text.includes('Wir speichern die Kennung des Stripe-Kontos und seinen Stand'))
|
||||
assert.ok(text.includes('Art. 6 Abs. 1 lit. b DSGVO') && text.includes('stripe.com/de/privacy'))
|
||||
assert.ok(text.includes('wir erhalten und verwahren kein Geld der Käufer'))
|
||||
// Orte und Fristen wie im AVV Webshop
|
||||
for (const s of ['Falkenstein', 'Nürnberg', 'nach 30 Tagen', 'drei Jahre nach dem Ende des Jahres der Bestellung', '90 Tage', 'bis zu sieben Tage', 'Sitzungsspeicher', 'nicht dauerhaft']) assert.ok(text.includes(s), `6d: ${s}`)
|
||||
assert.ok(text.includes('Eine Ausnahme ist das Einrichtungs-Ticket'))
|
||||
// kein Abo-Bezug: der Webshop endet mit dem Vertrag über den Betrieb der Website (Entscheidung W5)
|
||||
assert.ok(text.includes('endet der Vertrag über den Betrieb seiner Website'))
|
||||
assert.ok(!text.includes('Wartungs-Abo') && !text.includes('Hosting-Abo'), '6d nennt kein bestimmtes Abo')
|
||||
// Empfängerliste nennt den Webshop bei Stripe
|
||||
assert.ok(strip(html).includes('Eröffnung des Stripe-Kontos für den Webshop unserer Kunden (Abschnitte 6d und 7)'))
|
||||
})
|
||||
|
||||
test('datenschutz_6c_gleich_markdown: der Block in public/datenschutz.html ist die Markdown-Quelle, die Quelle ist ohne Entwurfs- und Prüflisten-Reste', () => {
|
||||
const md = read('docs/rechtliches/termine-datenschutz-6c.md').replace(/\r/g, '')
|
||||
const fence = /```html\n([\s\S]*?)\n```/.exec(md)
|
||||
|
||||
Reference in new issue
Block a user