create(); $user = User::factory()->create(); WorkspaceMembership::factory()->create([ 'workspace_id' => (int) $workspace->getKey(), 'user_id' => (int) $user->getKey(), 'role' => 'owner', ]); session()->put(WorkspaceContext::SESSION_KEY, (int) $workspace->getKey()); $this->actingAs($user); $entraTenantId = '11111111-1111-1111-1111-111111111111'; $component = Livewire::actingAs($user)->test(ManagedTenantOnboardingWizard::class); $component->call('identifyManagedTenant', [ 'entra_tenant_id' => $entraTenantId, 'environment' => 'prod', 'name' => 'Acme', 'primary_domain' => 'acme.example', 'notes' => 'Initial onboarding', ]); $component->call('identifyManagedTenant', [ 'entra_tenant_id' => $entraTenantId, 'environment' => 'prod', 'name' => 'Acme', 'primary_domain' => 'acme.example', 'notes' => 'Initial onboarding', ]); expect(Tenant::query()->where('tenant_id', $entraTenantId)->count())->toBe(1); $tenant = Tenant::query()->where('tenant_id', $entraTenantId)->firstOrFail(); expect((int) $tenant->workspace_id)->toBe((int) $workspace->getKey()); expect(TenantOnboardingSession::query() ->where('workspace_id', (int) $workspace->getKey()) ->where('entra_tenant_id', $entraTenantId) ->whereNull('completed_at') ->count())->toBe(1); }); it('responds with deny-as-not-found when attempting to identify an Entra tenant ID that belongs to another workspace', function (): void { $entraTenantId = '22222222-2222-2222-2222-222222222222'; $workspaceA = Workspace::factory()->create(); $workspaceB = Workspace::factory()->create(); $user = User::factory()->create(); WorkspaceMembership::factory()->create([ 'workspace_id' => (int) $workspaceA->getKey(), 'user_id' => (int) $user->getKey(), 'role' => 'owner', ]); WorkspaceMembership::factory()->create([ 'workspace_id' => (int) $workspaceB->getKey(), 'user_id' => (int) $user->getKey(), 'role' => 'owner', ]); Tenant::factory()->create([ 'workspace_id' => (int) $workspaceA->getKey(), 'tenant_id' => $entraTenantId, 'status' => Tenant::STATUS_ACTIVE, ]); session()->put(WorkspaceContext::SESSION_KEY, (int) $workspaceB->getKey()); $this->actingAs($user); Livewire::actingAs($user) ->test(ManagedTenantOnboardingWizard::class) ->call('identifyManagedTenant', [ 'entra_tenant_id' => $entraTenantId, 'environment' => 'prod', 'name' => 'Other Workspace', ]) ->assertStatus(404); });