get('/de/kontakt'); $response->assertStatus(200); } public function test_contact_page_is_accessible_in_english(): void { $response = $this->get('/en/contact'); $response->assertStatus(200); } public function test_german_contact_slug_redirects_to_english_variant_when_locale_is_english(): void { $response = $this->get('/en/kontakt'); $response->assertRedirect(route('marketing.contact', [ 'locale' => 'en', ])); } public function test_english_contact_slug_redirects_to_german_variant_when_locale_is_german(): void { $response = $this->get('/de/contact'); $response->assertRedirect(route('kontakt', [ 'locale' => 'de', ])); } public function test_occasion_canonical_slugs_resolve_for_both_locales(): void { $this->get('/de/anlaesse/hochzeit')->assertStatus(200); $this->get('/en/occasions/wedding')->assertStatus(200); } public function test_english_locale_redirects_from_german_occasions_slug(): void { $response = $this->get('/en/anlaesse/hochzeit'); $response->assertRedirect(route('occasions.type', [ 'locale' => 'en', 'type' => 'wedding', ])); } public function test_german_locale_redirects_from_english_occasions_slug(): void { $response = $this->get('/de/occasions/wedding'); $response->assertRedirect(route('anlaesse.type', [ 'locale' => 'de', 'type' => 'hochzeit', ])); } public function test_legal_pages_render_for_german_locale(): void { foreach (['impressum', 'datenschutz', 'agb'] as $slug) { LegalPage::updateOrCreate( ['slug' => $slug, 'version' => 1], [ 'title' => [ 'de' => ucfirst($slug), 'en' => ucfirst($slug), ], 'body_markdown' => [ 'de' => '# '.$slug, 'en' => '# '.$slug, ], 'locale_fallback' => 'de', 'is_published' => true, ] ); } $this->get('/de/impressum')->assertStatus(200); $this->get('/de/datenschutz')->assertStatus(200); $this->get('/de/agb')->assertStatus(200); } }