presseportale/tests/Feature/Web/NavigationLinksTest.php
Kevin Adametz 87558aba4f web: Hilfe in der Topleiste neben FAQ; 2.5/E5 geschlossen
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-17 15:40:41 +00:00

55 lines
2.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)
// Hilfe steht seit 17.09.2026 auch in der Topleiste neben FAQ.
->assertSee('/de/hilfe" class="hidden lg:inline cursor-pointer hover:text-ink-on-dark transition-colors">Hilfe</a>', 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);
}
});