assertIsString($view); $this->assertStringContainsString("details.className = Array.from(classNames).join(' ');", $view); $this->assertStringContainsString("classNames.add('group');", $view); $this->assertStringContainsString("'justify-between'", $view); $this->assertStringContainsString("'marker:hidden'", $view); $this->assertStringContainsString('inline-flex h-9 w-9 shrink-0 items-center justify-center rounded-xl bg-white/15 text-white ring-1 ring-white/20', $view); $this->assertStringContainsString('fa-solid fa-chevron-right text-xs transition group-open:rotate-90', $view); } /** * The old pseudo-element fallback produced inconsistent square icons and must stay removed. */ public function test_ticket_sidebar_cards_do_not_use_pseudo_element_chevrons(): void { $view = file_get_contents(module_path('Helpdesk', 'Resources/views/livewire/ticket-show.blade.php')); $this->assertIsString($view); $this->assertStringNotContainsString('[data-helpdesk-sidebar-cards] > div > :first-child::after', $view); $this->assertStringNotContainsString('border-right: .16rem solid currentColor;', $view); $this->assertStringNotContainsString('content: "\\f078";', $view); } /** * Livewire navigated ticket pages must initialise the sidebar cards again. */ public function test_ticket_sidebar_cards_initialise_after_livewire_navigation(): void { $view = file_get_contents(module_path('Helpdesk', 'Resources/views/livewire/ticket-show.blade.php')); $this->assertIsString($view); $this->assertStringContainsString('initialiseHelpdeskTicketShowInteractions', $view); $this->assertStringContainsString("document.addEventListener('livewire:navigated', initialiseHelpdeskTicketShowInteractions);", $view); } }