33 lines
937 B
PHP
33 lines
937 B
PHP
<?php
|
|
|
|
use App\Models\Tenant;
|
|
use App\Models\TenantOnboardingSession;
|
|
use App\Models\User;
|
|
use Illuminate\Database\QueryException;
|
|
|
|
it('casts payload as array', function () {
|
|
$session = TenantOnboardingSession::factory()->create([
|
|
'payload' => ['step' => 'welcome'],
|
|
]);
|
|
|
|
expect($session->payload)->toBeArray();
|
|
expect($session->payload['step'])->toBe('welcome');
|
|
});
|
|
|
|
it('enforces a single active onboarding session per tenant', function () {
|
|
$tenant = Tenant::factory()->create();
|
|
$user = User::factory()->create();
|
|
|
|
TenantOnboardingSession::factory()->create([
|
|
'tenant_id' => $tenant->id,
|
|
'created_by_user_id' => $user->id,
|
|
'status' => 'active',
|
|
]);
|
|
|
|
expect(fn () => TenantOnboardingSession::factory()->create([
|
|
'tenant_id' => $tenant->id,
|
|
'created_by_user_id' => $user->id,
|
|
'status' => 'active',
|
|
]))->toThrow(QueryException::class);
|
|
});
|