55 lines
2.2 KiB
PHP
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);
|
|
}
|
|
});
|