R3.1: Rechtstexte eingebaut — Impressum, AGB v0.6, Richtlinien, Meldeverfahren

- Impressum: echte Anbieterdaten (adametz.media, Bielefeld, USt-ID) statt
  erfundener GmbH; DDG statt TMG, MStV-Verantwortlicher, Verbund-Absatz,
  DSA-Kontaktpunkt (Art. 11/12) mit neuem REPORT_EMAIL_*-Melde-Postfach
- AGB: B2B-Fassung v0.6 (03.07.2026) vollstaendig gerendert (par. 1-16,
  interne Anwalts-Anmerkungen entfernt, Variablen je Host aufgeloest);
  ersetzt den widerspruechlichen Platzhalter (30-Tage-Frist etc.)
- Neu: /richtlinien (Rahmentext + Ablehnungskategorien K1-K6 mit Ankern,
  statisch bis zum rejection_categories-System) und /melden (DSA/DSGVO/
  Aenderung/Depublikation, verdrahtet mit den bestehenden Melde-Links an
  jeder Mitteilung; eigenstaendige Formulare = Backlog T10/T12)
- Footer beider Gerueste + Sitemap um Richtlinien/Melden ergaenzt
- Versioniertes legal_documents-System (E3) bleibt R3.1-Folgeausbau

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-03 15:53:06 +00:00
parent f3a95c854d
commit d577ff54b8
11 changed files with 833 additions and 121 deletions

View file

@ -10,6 +10,8 @@ dataset('static pages', [
'faq' => ['de/faq', 'Häufig gestellte Fragen'],
'hilfe' => ['de/hilfe', 'Hilfe-Center'],
'api' => ['de/api', 'API-Dokumentation'],
'richtlinien' => ['de/richtlinien', 'Veröffentlichungsrichtlinien'],
'melden' => ['de/melden', 'Inhalte melden oder Änderungen beantragen'],
]);
test('static pages render in the editorial design', function (string $path, string $heading) {
@ -43,6 +45,52 @@ test('the retired contact and about pages redirect to the edition home', functio
->assertRedirect('https://businessportal24.test/de');
})->with(['kontakt', 'ueber-uns']);
test('the imprint shows the real provider data instead of placeholders', function () {
/** @var TestCase $this */
$this->get('https://businessportal24.test/de/impressum')
->assertSuccessful()
->assertSeeText('adametz.media')
->assertSeeText('Kevin Adametz')
->assertSeeText('33739 Bielefeld')
->assertSeeText('DE298729654')
// DDG statt TMG; keine erfundene GmbH/Musterstraße mehr.
->assertSeeText('§ 5 DDG')
->assertDontSeeText('Business Portal GmbH')
->assertDontSeeText('Musterstraße');
});
test('the terms render the b2b version with cancellation and archive rules', function () {
/** @var TestCase $this */
$this->get('https://pressekonto.test/de/agb')
->assertSuccessful()
->assertSeeText('Kein Widerrufsrecht (B2B)')
->assertSeeText('richtet sich ausschließlich an Unternehmer')
->assertSeeText('Depublikation, Änderungen, Meldeverfahren')
// Alte Platzhalter-AGB (30-Tage-Frist, Business Portal GmbH) sind weg.
->assertDontSeeText('Frist von 30')
->assertDontSeeText('Business Portal GmbH');
});
test('the guidelines list the rejection categories with anchors', function () {
/** @var TestCase $this */
$this->get('https://presseecho.test/de/richtlinien')
->assertSuccessful()
->assertSeeText('So funktioniert die Prüfung')
->assertSeeText('Kein Pressecharakter / Spam')
->assertSee('id="K1"', false)
->assertSee('id="K6"', false);
});
test('the reporting page separates free legal paths from the paid takedown service', function () {
/** @var TestCase $this */
$this->get('https://businessportal24.test/de/melden')
->assertSuccessful()
->assertSeeText('Rechtswidrige Inhalte oder Rechteverletzungen melden')
->assertSeeText('Eigene personenbezogene Daten entfernen lassen')
->assertSeeText('Freiwillige Entfernung rechtmäßiger Inhalte')
->assertSeeText('Ausübung gesetzlicher Rechte');
});
test('the help center shows quick links and topics', function () {
/** @var TestCase $this */
$this->get('https://businessportal24.test/de/hilfe')