create(['external_id' => 'tenant-a']); $user = User::factory()->create(); $this->actingAs($user) ->get("/admin/t/{$tenant->external_id}") ->assertNotFound(); }); it('returns 404 for members on the retired tenant dashboard compatibility route', function () { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $this->actingAs($user) ->get("/admin/t/{$tenant->external_id}") ->assertNotFound(); }); it('keeps retired tenant routes outside the active workspace route boundary', function () { [$user, $tenant] = createUserWithTenant(role: 'readonly'); $otherTenant = ManagedEnvironment::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'external_id' => 'boundary-tenant-b', ]); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/tenants/{$tenant->external_id}") ->assertNotFound(); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/t/{$otherTenant->external_id}") ->assertNotFound(); }); it('keeps non-member tenant-bound requests as 404 even when another tenant is selected', function () { [$user, $selectedTenant] = createUserWithTenant(role: 'readonly'); $otherTenant = ManagedEnvironment::factory()->active()->create([ 'workspace_id' => (int) $selectedTenant->workspace_id, 'external_id' => 'hidden-tenant-b', ]); Filament::setTenant($selectedTenant, true); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $selectedTenant->workspace_id]) ->get("/admin/t/{$otherTenant->external_id}") ->assertNotFound(); }); it('keeps non-member onboarding tenant admin routes as 404 even when another tenant is selected', function (): void { [$user, $selectedTenant] = createUserWithTenant(role: 'owner'); $otherTenant = ManagedEnvironment::factory()->onboarding()->create([ 'workspace_id' => (int) $selectedTenant->workspace_id, 'external_id' => 'hidden-onboarding-tenant-b', ]); Filament::setTenant($selectedTenant, true); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $selectedTenant->workspace_id]) ->get("/admin/tenants/{$otherTenant->external_id}") ->assertNotFound(); });