b2in/tests/Feature/ReferencesPageSwitchTest.php
Kevin Adametz fcb10be120 Interior-Feinschliff: Hero-Slideshow, Lektorat, Rechtstexte, Aufräumen und Korrekturen 08.10.
Startseite und Heroes
- Hero-Slideshow (11 Motive inkl. Febrü) mit Infokarte, Laufzeit-Linie, größeren Klickflächen,
  Goldrahmen und mobiler Karte unter dem Bild; Zeile über der Überschrift, neue Vertrauenspunkte
- Hero-Stil auf Marken, Über uns und Kontakt übertragen, Breadcrumb entfernt
- Gründer-Leiste, Vision-Box auf Ocker, Showroom-Display in Box mit „Größer ansehen“/Vollbild
- Akzentfarbe #a8741f, größere Serif-Überschriften in der Interior-Welt
- Marken: Bildpause mit Zitat; Vereine aktualisiert und verlinkt

Inhalte
- Lektorat aller angezeigten Texte, /about-Korrekturen, Rechtstexte (DDG, TDDDG, Hosting Hetzner)
- Ablauf Maßanfertigung überall einheitlich, Magazin-Beitrag neu, alte Beiträge offline,
  deutsches Datum/Lesezeit, FAQ Projektausstattung, Otterpohl
- Referenzen-Seite per CMS-Schalter ausblendbar

CMS und Technik
- Tote Sektionen, Felder, Seiten und Komponenten entfernt und archiviert (dev/2026-08-28/archiv-*)
- Entwurf /entwurf, Farb-Schalter und /welcome entfernt; Test-Routen nur noch lokal
- Seitenbaum-Beschreibungen geprüft, fehlende CMS-Felder ergänzt, Markenliste aus „Kernmarken“
- Admin-Bildvorschauen repariert, verwendete Bilder in die Mediathek übernommen
- Seeder für das Deployment siehe dev/2026-08-28/entwicklungsplan.md

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:00:15 +00:00

77 lines
2.5 KiB
PHP

<?php
declare(strict_types=1);
use App\Livewire\Web\Components\Sections\DisplayFeed;
use App\Models\Setting;
use App\Models\User;
use Database\Seeders\ReferencesPageSwitchSeeder;
use Livewire\Livewire;
use Livewire\Volt\Volt;
/**
* Referenzen im CMS aus- und einblenden (06.10.2026).
*/
function referencesSwitch(bool $enabled): void
{
Setting::query()->updateOrCreate(
['group' => 'pages', 'key' => 'referenzen_enabled'],
['value' => $enabled ? '1' : '0', 'type' => 'boolean'],
);
}
it('shows the page and the menu item while the switch is on or unset', function () {
$this->get('/referenzen')->assertSuccessful();
$this->get('/')->assertSuccessful()->assertSee('href="/referenzen"', false);
referencesSwitch(true);
$this->get('/referenzen')->assertSuccessful();
});
it('hides the page, the menu item and the feed button while the switch is off', function () {
referencesSwitch(false);
$this->get('/referenzen')->assertNotFound();
$this->get('/')->assertSuccessful()->assertDontSee('href="/referenzen"', false);
$this->get('/marken')->assertSuccessful()->assertDontSee('href="/referenzen"', false);
Livewire::test(DisplayFeed::class)->assertSet('showLink', false);
});
it('keeps the feed button when it points somewhere else', function () {
referencesSwitch(false);
\FluxCms\Core\Models\CmsContent::create(['group' => 'referenzen', 'key' => 'display_feed', 'type' => 'json', 'order' => 0, 'value' => [
'de' => ['title' => 'Aus den Stores', 'link_text' => 'Zum Showroom', 'link_url' => '/contact'],
]]);
Livewire::test(DisplayFeed::class)->assertSet('showLink', true);
});
it('switches the page from the references module in the CMS', function () {
$this->actingAs(User::factory()->create());
Volt::test('admin.cms.references-index')
->assertSet('pageEnabled', true)
->set('pageEnabled', false);
expect(references_page_enabled())->toBeFalse();
$this->get('/referenzen')->assertNotFound();
Volt::test('admin.cms.references-index')
->assertSet('pageEnabled', false)
->set('pageEnabled', true);
expect(references_page_enabled())->toBeTrue();
});
it('switches the page off on deployment but respects a choice made in the CMS', function () {
$this->seed(ReferencesPageSwitchSeeder::class);
expect(references_page_enabled())->toBeFalse();
referencesSwitch(true);
$this->seed(ReferencesPageSwitchSeeder::class);
expect(references_page_enabled())->toBeTrue();
});