66 lines
1.9 KiB
PHP
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();
|
|
}
|
|
}
|