create(); createUserWithTenant(tenant: $tenant, user: $actor, role: $role); ProviderConnection::factory()->for($tenant)->create([ 'provider' => 'microsoft', 'is_default' => true, ]); $this->actingAs($lockHolder); Filament::setTenant($tenant, true); Livewire::test(TenantOnboardingWizard::class) ->assertSuccessful(); $session = OnboardingSession::query() ->where('tenant_id', $tenant->getKey()) ->first(); expect($session)->not->toBeNull(); expect($session?->locked_by_user_id)->toBe((int) $lockHolder->getKey()); $this->actingAs($actor); Filament::setTenant($tenant, true); if (! $shouldBeAllowed) { Livewire::test(TenantOnboardingWizard::class) ->callAction('takeover_onboarding_session'); $session->refresh(); expect($session->locked_by_user_id)->toBe((int) $lockHolder->getKey()); return; } Livewire::test(TenantOnboardingWizard::class) ->callAction('takeover_onboarding_session'); $session->refresh(); expect($session->locked_by_user_id)->toBe((int) $actor->getKey()); })->with([ 'owner' => ['owner', true], 'manager' => ['manager', true], 'operator' => ['operator', false], 'readonly' => ['readonly', false], ]);