toBeString(); expect($contents)->toContain('RecentDriftFindings'); expect($contents)->toContain('RecentOperations'); expect($contents)->toContain('Directory/Workspaces'); expect($contents)->toContain('InventoryCoverage'); expect($contents)->toContain('Picker tables keep workflow-local search only'); }); it('keeps computed workspace health metrics out of sortable and searchable columns', function (): void { $contents = file_get_contents(base_path('app/Filament/System/Pages/Directory/Workspaces.php')); expect($contents)->toBeString(); $healthBlockMatched = preg_match("/TextColumn::make\\('health'\\)(.*?)(?:TextColumn::make\\('failed_runs_24h'\\)|->recordUrl)/s", $contents, $healthMatches); $failedRunsBlockMatched = preg_match("/TextColumn::make\\('failed_runs_24h'\\)(.*?)(?:->recordUrl|->emptyStateHeading)/s", $contents, $failedRunsMatches); expect($healthBlockMatched)->toBe(1); expect($failedRunsBlockMatched)->toBe(1); expect($healthMatches[1] ?? '')->not->toContain('->searchable('); expect($healthMatches[1] ?? '')->not->toContain('->sortable('); expect($failedRunsMatches[1] ?? '')->not->toContain('->searchable('); expect($failedRunsMatches[1] ?? '')->not->toContain('->sortable('); }); it('keeps dashboard widgets as glance surfaces instead of searchable workbenches', function (): void { foreach ([ 'app/Filament/Widgets/Dashboard/RecentDriftFindings.php', 'app/Filament/Widgets/Dashboard/RecentOperations.php', ] as $relativePath) { $contents = file_get_contents(base_path($relativePath)); expect($contents)->toBeString(); expect($contents)->not->toContain('->searchable('); } });