Files
fotospiel-app/tests/Feature/DemoEventSeederTest.php
Codex Agent beaff1c4e9
Some checks failed
linter / quality (push) Has been cancelled
tests / ci (push) Has been cancelled
tests / ui (push) Has been cancelled
Extend demo join token expiry in seeder
2026-02-04 15:36:02 +01:00

66 lines
1.9 KiB
PHP

<?php
namespace Tests\Feature;
use App\Models\Event;
use App\Models\EventType;
use App\Models\Package;
use App\Models\Tenant;
use Database\Seeders\DemoEventSeeder;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Carbon;
use Tests\TestCase;
class DemoEventSeederTest extends TestCase
{
use RefreshDatabase;
public function test_demo_wedding_join_token_ttl_is_extended(): void
{
$now = Carbon::parse('2026-02-04 12:00:00');
Carbon::setTestNow($now);
$tenant = Tenant::factory()->create(['slug' => 'demo-tenant']);
EventType::factory()->create([
'slug' => 'wedding',
'name' => ['de' => 'Hochzeit', 'en' => 'Wedding'],
]);
EventType::factory()->create([
'slug' => 'corporate',
'name' => ['de' => 'Business', 'en' => 'Corporate'],
]);
Package::factory()->endcustomer()->create([
'slug' => 'standard',
'name' => 'Standard',
]);
Package::factory()->endcustomer()->create([
'slug' => 'premium',
'name' => 'Premium',
]);
$event = Event::factory()->create([
'tenant_id' => $tenant->id,
'event_type_id' => EventType::where('slug', 'wedding')->value('id'),
'slug' => 'demo-wedding-2025',
'name' => ['de' => 'Demo', 'en' => 'Demo'],
'date' => $now->copy()->addMonth(),
]);
$token = $event->joinTokens()->latest('id')->first();
$token->forceFill(['expires_at' => $now->copy()->subDay()])->save();
$this->seed(DemoEventSeeder::class);
$event->refresh();
$token = $event->joinTokens()->latest('id')->first();
$expectedExpiry = $now->copy()->addYears(20);
$this->assertTrue($token->expires_at->equalTo($expectedExpiry));
Carbon::setTestNow();
}
}