active()->create(['name' => 'Recovery Tenant']); [$user] = createUserWithTenant(tenant: $tenant, role: 'owner'); session()->forget(WorkspaceContext::SESSION_KEY); $this->actingAs($user) ->get('/admin/workspaces') ->assertOk() ->assertSee('Context unavailable') ->assertSee('Choose workspace'); }); it('shows explicit recovery wording when an invalid tenant hint is discarded on a workspace route', function (): void { $validTenant = Tenant::factory()->active()->create(['name' => 'Valid Workspace Tenant']); [$user, $validTenant] = createUserWithTenant(tenant: $validTenant, role: 'owner'); $foreignTenant = Tenant::factory()->active()->create(['name' => 'Foreign Workspace Tenant']); createUserWithTenant(tenant: $foreignTenant, user: User::factory()->create(), role: 'owner'); $this->actingAs($user) ->withSession([ WorkspaceContext::SESSION_KEY => (int) $validTenant->workspace_id, ]) ->get(route('admin.operations.index', ['tenant' => $foreignTenant->external_id])) ->assertOk() ->assertSee('Context unavailable') ->assertSee('No tenant selected') ->assertDontSee('Tenant scope: '.$foreignTenant->name); });