create([ 'tenant_id' => $tenant->getKey(), 'finding_type' => Finding::FINDING_TYPE_DRIFT, 'severity' => Finding::SEVERITY_HIGH, 'status' => Finding::STATUS_NEW, ]); $operation = OperationRun::factory()->create([ 'tenant_id' => $tenant->getKey(), 'type' => 'inventory_sync', 'status' => 'queued', 'outcome' => 'pending', 'initiator_name' => 'System', ]); $backupSet = BackupSet::factory()->create([ 'tenant_id' => (int) $tenant->getKey(), 'name' => 'DB-only healthy backup', 'item_count' => 1, 'completed_at' => now()->subMinutes(30), ]); BackupItem::factory()->create([ 'tenant_id' => (int) $tenant->getKey(), 'backup_set_id' => (int) $backupSet->getKey(), 'payload' => ['id' => 'healthy-policy'], 'metadata' => [], 'assignments' => [], ]); $this->actingAs($user); Bus::fake(); Filament::setTenant($tenant, true); assertNoOutboundHttp(function () use ($operation, $tenant): void { $this->get(TenantDashboard::getUrl(tenant: $tenant)) ->assertOk() ->assertSee('/admin/choose-workspace', false); // NeedsAttention, RecentOperations and RecentDriftFindings are // lazy-loaded widgets and will not appear in the initial // server-rendered HTML. Livewire::test(DashboardKpis::class) ->assertSee('Backup posture') ->assertSee('Healthy') ->assertSee('Active operations') ->assertSee('healthy queued or running tenant work'); Livewire::test(DashboardRecentOperations::class) ->assertSee('Operation ID') ->assertSee('Operation #'.$operation->getKey()) ->assertSee('Inventory sync'); }); Bus::assertNothingDispatched(); });