Gebuendelt, da ueber gemeinsame lang-/Service-Dateien verschraenkt: - Kontakt-Nachrichten: contact_messages-Tabelle + Model/Enums/Factory, Admin-Queue (livewire/admin/contact-messages), ContactController persistiert das Anliegen zusaetzlich zur Brand-Mail - Page-Data-Cache (Services/Web/*PageData) + web-archive-Indizes auf press_releases - Validierungs-Feedback + Company-Portal-Restriction (Feature-Tests) - i18n-Auslagerung lang/de|en (auth, passwords, validation, static) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
53 lines
2 KiB
PHP
53 lines
2 KiB
PHP
<?php
|
|
|
|
use App\Enums\Portal;
|
|
use App\Models\Category;
|
|
use Tests\TestCase;
|
|
|
|
test('header and footer link to faq, hilfe and legal pages and drop dead links', function () {
|
|
/** @var TestCase $this */
|
|
$response = $this->get('https://businessportal24.test/de');
|
|
|
|
$response->assertSuccessful()
|
|
// Neu verlinkt (FAQ im Header + Footer, Hilfe + Rechtsseiten im Footer).
|
|
// Die Cookie-Seite wurde zurückgebaut (Cookies stehen in der
|
|
// Datenschutzerklärung, Abschnitt 4).
|
|
->assertSee('/de/faq', false)
|
|
->assertSee('/de/hilfe', false)
|
|
->assertSee('/de/richtlinien', false)
|
|
->assertSee('/de/melden', false)
|
|
->assertDontSee('/de/cookies', false)
|
|
// „Anmelden" öffnet ein Modal, das Pressekonto erklärt und in den Hub verlinkt.
|
|
->assertSee('/login', false)
|
|
->assertSeeText(__('web.header.login_modal_title'))
|
|
->assertSeeText(__('web.header.login_modal_hub'))
|
|
->assertDontSee('href="#newsletter"', false)
|
|
->assertDontSee('href="#rss"', false)
|
|
->assertDontSee('href="#anmelden"', false)
|
|
// Nicht verlinkte Platzhalter-Punkte wurden entfernt.
|
|
->assertDontSee('Mediendaten')
|
|
->assertDontSee('Verifizierter Newsroom');
|
|
});
|
|
|
|
test('categories beyond the top nine appear in the header more dropdown', function () {
|
|
/** @var TestCase $this */
|
|
// 12 Top-Level-Rubriken: die Top 9 erscheinen als Tabs, der Rest im
|
|
// „Mehr“-Dropdown (Desktop) bzw. in der Mobile-Liste — keine Rubrik
|
|
// fällt mehr komplett aus der Navigation.
|
|
$categories = Category::factory()
|
|
->count(12)
|
|
->state(['portal' => Portal::Both->value])
|
|
->withTranslations()
|
|
->create();
|
|
|
|
$response = $this->get('https://businessportal24.test/de');
|
|
|
|
$response->assertSuccessful()
|
|
->assertSeeText(__('web.nav.more'));
|
|
|
|
foreach ($categories as $category) {
|
|
$translation = $category->translations()->where('locale', 'de')->first();
|
|
|
|
$response->assertSeeText($translation->name);
|
|
}
|
|
});
|