create(); [$user, $tenant] = createUserWithTenant($tenant, role: 'owner'); $run = OperationRun::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'type' => 'provider.connection.check', 'status' => OperationRunStatus::Queued->value, 'outcome' => OperationRunOutcome::Pending->value, ]); Filament::setTenant($tenant, true); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/operations/{$run->getKey()}") ->assertOk() ->assertSee('← Back to '.$tenant->name) ->assertSee('Show all operations') ->assertDontSee('Back to Operations'); }); it('shows only back-to-operations when no tenant context is active', function (): void { $tenant = Tenant::factory()->create(); [$user, $tenant] = createUserWithTenant($tenant, role: 'owner'); $run = OperationRun::factory()->create([ 'workspace_id' => (int) $tenant->workspace_id, 'tenant_id' => (int) $tenant->getKey(), 'type' => 'provider.connection.check', 'status' => OperationRunStatus::Queued->value, 'outcome' => OperationRunOutcome::Pending->value, ]); Filament::setTenant(null, true); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $tenant->workspace_id]) ->get("/admin/operations/{$run->getKey()}") ->assertOk() ->assertSee('Back to Operations') ->assertDontSee('← Back to ') ->assertDontSee('Show all operations'); }); it('treats stale tenant context as workspace-wide on run detail', function (): void { $entitledTenant = Tenant::factory()->create(); [$user, $entitledTenant] = createUserWithTenant($entitledTenant, role: 'owner', workspaceRole: 'readonly'); $staleTenant = Tenant::factory()->create([ 'workspace_id' => (int) $entitledTenant->workspace_id, ]); $run = OperationRun::factory()->create([ 'workspace_id' => (int) $entitledTenant->workspace_id, 'tenant_id' => (int) $entitledTenant->getKey(), 'type' => 'provider.connection.check', 'status' => OperationRunStatus::Queued->value, 'outcome' => OperationRunOutcome::Pending->value, ]); Filament::setTenant($staleTenant, true); $this->actingAs($user) ->withSession([WorkspaceContext::SESSION_KEY => (int) $entitledTenant->workspace_id]) ->get("/admin/operations/{$run->getKey()}") ->assertOk() ->assertSee('All tenants') ->assertSee('Back to Operations') ->assertDontSee('← Back to '.$staleTenant->name) ->assertDontSee($staleTenant->name) ->assertDontSee('Show all operations'); });