diff --git a/app/Http/Controllers/MarketingController.php b/app/Http/Controllers/MarketingController.php index a01a969..f6a357f 100644 --- a/app/Http/Controllers/MarketingController.php +++ b/app/Http/Controllers/MarketingController.php @@ -409,10 +409,17 @@ class MarketingController extends Controller public function demo() { - $joinToken = optional(Event::firstWhere('slug', 'demo-wedding-2025')) - ?->joinTokens() + $event = Event::query() + ->where('settings->marketing_demo', true) ->latest('id') ->first(); + $joinToken = null; + + if ($event) { + $joinToken = $event->joinTokens() + ->latest('id') + ->first(); + } $demoToken = null; diff --git a/database/seeders/DemoEventSeeder.php b/database/seeders/DemoEventSeeder.php index acb11c6..48e10b5 100644 --- a/database/seeders/DemoEventSeeder.php +++ b/database/seeders/DemoEventSeeder.php @@ -51,6 +51,7 @@ class DemoEventSeeder extends Seeder 'background_color' => '#FFF8F5', 'font_family' => 'Playfair Display, serif', ], + 'marketing_demo' => true, ], [ 'slug' => 'demo-corporate-2025', @@ -88,6 +89,7 @@ class DemoEventSeeder extends Seeder 'is_active' => true, 'settings' => [ 'branding' => $config['branding'], + 'marketing_demo' => $config['marketing_demo'] ?? false, ], 'default_locale' => 'de', ] diff --git a/tests/Feature/Marketing/DemoPageTest.php b/tests/Feature/Marketing/DemoPageTest.php new file mode 100644 index 0000000..7c422a1 --- /dev/null +++ b/tests/Feature/Marketing/DemoPageTest.php @@ -0,0 +1,32 @@ +create([ + 'settings' => ['marketing_demo' => true], + ]); + + $joinToken = $event->joinTokens()->latest('id')->first(); + + $this->assertNotNull($joinToken); + + $response = $this->get('/de/demo'); + + $response->assertOk(); + $response->assertInertia(fn (Assert $page) => $page + ->component('marketing/Demo') + ->where('demoToken', $joinToken->token) + ); + } +}