toContain('.listbox-trigger {') ->toContain('min-width: 0;') ->toContain('overflow: hidden;') ->toContain('.listbox-trigger-label {') ->toContain('text-overflow: ellipsis;') ->toContain('white-space: nowrap;'); }); test('listbox component uses shared trigger label truncation', function () { $html = Blade::render(<<<'BLADE' BLADE); expect($html) ->toContain('class="w-full min-w-0"') ->toContain('relative min-w-0') ->toContain('listbox-trigger') ->toContain('listbox-trigger-label') ->toContain(':title="current"') ->not->toContain('class="truncate" x-text="current"'); }); test('searchable listbox component uses shared trigger label truncation', function () { $html = Blade::render(<<<'BLADE' BLADE); expect($html) ->toContain('class="w-full min-w-0"') ->toContain('relative min-w-0') ->toContain('listbox-trigger-label') ->toContain(':title="current"'); }); test('notification event multiselect truncates long selected summaries', function () { $html = Blade::render(<<<'BLADE' BLADE); expect($html) ->toContain('class="w-full min-w-0"') ->toContain('relative min-w-0') ->toContain('listbox-trigger') ->toContain('listbox-trigger-label') ->toContain('Docker cleanup failure, Disk usage warning, Server unreachable, Server patching') ->toContain('title="Docker cleanup failure, Disk usage warning, Server unreachable, Server patching"') ->toContain('4/4'); });