- Mediathek: Video-Vorschaubilder statt Icons (FFmpeg-Thumbnails + Backfill-Command), Kategorie "Sonstiges" - B2in Media-Picker zeigt alle Medientypen, Typ wird automatisch erkannt; Thumbnail-Preview vor allen Medien-URL-Feldern - B2in Marke/Footer: Footer ein/aus, Logo+Claim frei positionierbar (Ecken) mit Constraints, separate Anzeige-Schalter - Angebote-Modul dynamisch: kein Slide-Typ mehr, einheitliches Detail-Layout mit ein-/ausblendbaren Bloecken, Logo/Brand pro Slide, Streichpreis-Option - Player: leere Module stoppen Endlosschleife, dynamische Layout-Anpassung bei verstecktem Footer/Header - Fix: Script-Ladereihenfolge (Livewire vor Flux), entfernte stale public/flux/flux.js, Modal-Crash beim Aktualisieren behoben Co-authored-by: Cursor <cursoragent@cursor.com>
74 lines
3.6 KiB
PHP
74 lines
3.6 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
// ========================================
|
|
// Live-Seiten: HTTP Status
|
|
// ========================================
|
|
|
|
it('homepage loads', fn () => $this->get('/')->assertSuccessful());
|
|
it('immobilien page loads', fn () => $this->get('/immobilien')->assertSuccessful());
|
|
it('immobilien expose loads', fn () => $this->get('/immobilien/azizi-creek-views-4')->assertSuccessful());
|
|
it('netzwerk page loads', fn () => $this->get('/netzwerk')->assertSuccessful());
|
|
it('magazin list loads', fn () => $this->get('/magazin')->assertSuccessful());
|
|
it('magazin article 1 loads', fn () => $this->get('/magazin/1')->assertSuccessful());
|
|
it('magazin article 2 loads', fn () => $this->get('/magazin/2')->assertSuccessful());
|
|
it('magazin article 3 loads', fn () => $this->get('/magazin/3')->assertSuccessful());
|
|
it('magazin article 4 loads', fn () => $this->get('/magazin/4')->assertSuccessful());
|
|
it('magazin article 5 loads', fn () => $this->get('/magazin/5')->assertSuccessful());
|
|
it('about page loads', fn () => $this->get('/about')->assertSuccessful());
|
|
it('contact page loads', fn () => $this->get('/contact')->assertSuccessful());
|
|
it('faq page loads', fn () => $this->get('/faq')->assertSuccessful());
|
|
|
|
// ========================================
|
|
// Redirects
|
|
// ========================================
|
|
|
|
it('interior redirects to netzwerk', fn () => $this->get('/interior')->assertRedirect('/netzwerk'));
|
|
it('partner redirects to netzwerk', fn () => $this->get('/partner')->assertRedirect('/netzwerk'));
|
|
it('ecosystem redirects to partner', fn () => $this->get('/ecosystem')->assertRedirect('/partner'));
|
|
|
|
// ========================================
|
|
// Dev/Archiv-Seiten
|
|
// ========================================
|
|
|
|
it('dev sitemap loads', fn () => $this->get('/dev/sitemap')->assertSuccessful());
|
|
it('dev immobilien v1 loads', fn () => $this->get('/dev/immobilien-v1')->assertSuccessful());
|
|
it('dev interior v1 loads', fn () => $this->get('/dev/interior-v1')->assertSuccessful());
|
|
it('dev partner v1 loads', fn () => $this->get('/dev/partner-v1')->assertSuccessful());
|
|
|
|
// ========================================
|
|
// 404 für ungültige Routen
|
|
// ========================================
|
|
|
|
it('invalid immobilien slug returns 404', fn () => $this->get('/immobilien/nonexistent')->assertNotFound());
|
|
|
|
// ========================================
|
|
// Announcement Bar auf allen Seiten
|
|
// ========================================
|
|
|
|
it('announcement bar visible on homepage', fn () => $this->get('/')->assertSee('Azizi Creek Views 4'));
|
|
it('announcement bar visible on about', fn () => $this->get('/about')->assertSee('Azizi Creek Views 4'));
|
|
|
|
// ========================================
|
|
// Kritische Inhalte vorhanden
|
|
// ========================================
|
|
|
|
it('homepage has navigation', fn () => $this->get('/')->assertSee('Immobilien')->assertSee('Netzwerk')->assertSee('Magazin'));
|
|
it('immobilien has all five sections', function () {
|
|
$this->get('/immobilien')
|
|
->assertSee('Warum Dubai für Investoren relevant bleibt')
|
|
->assertSee('Der Kaufprozess mit B2in')
|
|
->assertSee('Passt Dubai zu Ihrer Investmentstrategie?')
|
|
->assertSee('Einrichtung mitdenken')
|
|
->assertSee('Investoren');
|
|
});
|
|
it('netzwerk has teaser cards', fn () => $this->get('/netzwerk')->assertSee('Einrichtungsnetzwerk')->assertSee('In Entwicklung'));
|
|
it('magazin has all five articles', function () {
|
|
$this->get('/magazin')
|
|
->assertSee('Escrow-System')
|
|
->assertSee('Al Jaddaf')
|
|
->assertSee('Turnkey')
|
|
->assertSee('Supply-Chain')
|
|
->assertSee('Local for Local');
|
|
});
|