Extend demo join token expiry in seeder
This commit is contained in:
@@ -43,6 +43,7 @@ class DemoEventSeeder extends Seeder
|
||||
'package' => $standardPackage,
|
||||
'token_label' => 'Demo QR',
|
||||
'token_value' => 'W2E3sbt7yclzpkAwNSARHYTVN1sPLBad8hfUjLVHmjkUviPd',
|
||||
'join_token_expires_at' => Carbon::now()->addYears(20),
|
||||
'collection_slugs' => ['wedding-classics-2025'],
|
||||
'task_slug_prefix' => 'wedding-',
|
||||
'branding' => [
|
||||
@@ -95,7 +96,12 @@ class DemoEventSeeder extends Seeder
|
||||
]
|
||||
);
|
||||
|
||||
$this->ensureJoinToken($event, $config['token_label'], $config['token_value'] ?? null);
|
||||
$this->ensureJoinToken(
|
||||
$event,
|
||||
$config['token_label'],
|
||||
$config['token_value'] ?? null,
|
||||
$config['join_token_expires_at'] ?? null
|
||||
);
|
||||
|
||||
$this->attachEventPackage(
|
||||
event: $event,
|
||||
@@ -110,7 +116,7 @@ class DemoEventSeeder extends Seeder
|
||||
}
|
||||
}
|
||||
|
||||
private function ensureJoinToken(Event $event, string $label, ?string $token = null): void
|
||||
private function ensureJoinToken(Event $event, string $label, ?string $token = null, ?Carbon $expiresAt = null): void
|
||||
{
|
||||
if ($event->joinTokens()->exists()) {
|
||||
$existingToken = $event->joinTokens()->latest('id')->first();
|
||||
@@ -121,6 +127,12 @@ class DemoEventSeeder extends Seeder
|
||||
$existingToken->metadata = $metadata;
|
||||
$existingToken->save();
|
||||
}
|
||||
|
||||
if ($expiresAt && (! $existingToken->expires_at || $existingToken->expires_at->lt($expiresAt))) {
|
||||
$existingToken->forceFill([
|
||||
'expires_at' => $expiresAt,
|
||||
])->save();
|
||||
}
|
||||
}
|
||||
|
||||
return;
|
||||
@@ -137,6 +149,10 @@ class DemoEventSeeder extends Seeder
|
||||
'metadata' => $metadata,
|
||||
];
|
||||
|
||||
if ($expiresAt) {
|
||||
$attributes['expires_at'] = $expiresAt;
|
||||
}
|
||||
|
||||
$tokenModel = app(EventJoinTokenService::class)->createToken($event, $attributes);
|
||||
|
||||
if ($token) {
|
||||
|
||||
65
tests/Feature/DemoEventSeederTest.php
Normal file
65
tests/Feature/DemoEventSeederTest.php
Normal file
@@ -0,0 +1,65 @@
|
||||
<?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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user