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>
54 lines
2.3 KiB
PHP
54 lines
2.3 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
use Database\Seeders\AboutPageTextSeeder;
|
|
use FluxCms\Core\Models\CmsContent;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
|
|
uses(RefreshDatabase::class);
|
|
|
|
/**
|
|
* Textkorrekturen auf /about (Abstimmung 06.10.2026).
|
|
*/
|
|
it('shows the corrected texts on the about page', function () {
|
|
$html = $this->get('/about')->assertSuccessful()->getContent();
|
|
|
|
expect($html)->toContain('aufmisst und am Ende auch dafür geradesteht.')
|
|
->toContain('mit wenigen ausgewählten Herstellern')
|
|
->toContain('„Gute Einrichtung entsteht')
|
|
->toContain('Zu Qualität gehört, Wort zu halten.')
|
|
->toContain('Febrü und Otterpohl Möbelservice bilden die Kernmarken')
|
|
->toContain('den ein Standardmöbel ungenutzt lässt.')
|
|
->toContain('Werden Sie B2in-Partner')
|
|
->not->toContain('am Ende geradesteht.')
|
|
->not->toContain('liegen lässt');
|
|
});
|
|
|
|
it('corrects the texts stored in the CMS and leaves everything else alone', function () {
|
|
$row = CmsContent::create([
|
|
'group' => 'about',
|
|
'key' => 'our_story',
|
|
'type' => 'json',
|
|
'value' => [
|
|
'de' => ['title' => 'Eigener Titel', 'timeline' => [['description' => 'Wer hochwertig einrichten will, findet selten jemanden, der zuhört, aufmisst und am Ende geradesteht.']]],
|
|
'en' => ['timeline' => [['description' => 'In 2026 interiors move to the centre: CABINET, Rotpunkt Küchen and Febrü form the core, complemented by a network of regional specialists. International real estate remains as a complementary area.']]],
|
|
],
|
|
'order' => 0,
|
|
]);
|
|
|
|
$this->seed(AboutPageTextSeeder::class);
|
|
$this->seed(AboutPageTextSeeder::class);
|
|
|
|
$value = $row->refresh()->getTranslations('value');
|
|
|
|
expect($value['de']['title'])->toBe('Eigener Titel')
|
|
->and($value['de']['timeline'][0]['description'])->toBe('Wer hochwertig einrichten will, findet selten jemanden, der zuhört, aufmisst und am Ende auch dafür geradesteht.')
|
|
->and($value['en']['timeline'][0]['description'])->toContain('Febrü and Otterpohl Möbelservice form the core');
|
|
});
|
|
|
|
it('does nothing when the about sections are not in the CMS', function () {
|
|
$this->seed(AboutPageTextSeeder::class);
|
|
|
|
expect(CmsContent::where('group', 'about')->exists())->toBeFalse();
|
|
});
|