BLADE); expect($html) ->toContain('table-toolbar') ->toContain('table-search') ->toContain('wire:model.live="search"') ->toContain('aria-multiselectable="true"') ->toContain('Reset filters') ->toContain('wire:click="clearFilters"') ->toContain('Sort'); }); it('renders the standard table loading overlay', function () { $html = Blade::render('
'); expect($html) ->toContain('table-loading-overlay') ->toContain('wire:loading.flex') ->toContain('wire:target="applyFilters"') ->toContain('[&_.loading-indicator]:size-5') ->toContain('aria-label="Loading records..."') ->not->toContain('Loading records...'); }); it('uses shared table controls on backend filtered tables', function () { $deployments = file_get_contents(resource_path('views/livewire/project/application/deployment/index.blade.php')); $environmentVariables = file_get_contents(resource_path('views/livewire/project/shared/environment-variable/all.blade.php')); foreach ([$deployments, $environmentVariables] as $view) { expect($view) ->toContain('toContain('toContain('toContain('toContain('toContain('toContain('clear-when="search"') ->toContain("clear-action=\"search = ''\""); });