44 lines
1.8 KiB
PHP
Executable File
44 lines
1.8 KiB
PHP
Executable File
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Tests\Feature;
|
|
|
|
use PHPUnit\Framework\TestCase;
|
|
|
|
final class TicketSidebarCardsExpandableFilesTest extends TestCase
|
|
{
|
|
/**
|
|
* Ticket show sidebar cards must be expandable after normal page loads and Livewire navigation.
|
|
*/
|
|
public function test_ticket_show_sidebar_cards_have_livewire_safe_expand_toggle(): void
|
|
{
|
|
$viewPath = dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-show.blade.php';
|
|
$view = file_get_contents($viewPath);
|
|
|
|
self::assertIsString($view);
|
|
self::assertStringContainsString('data-helpdesk-sidebar-cards', $view);
|
|
self::assertStringContainsString('data-helpdesk-sidebar-card-header', $view);
|
|
self::assertStringContainsString('toggleHelpdeskSidebarCard', $view);
|
|
self::assertStringContainsString("document.addEventListener('livewire:navigated', initialiseHelpdeskTicketShowInteractions);", $view);
|
|
self::assertStringContainsString("document.addEventListener('livewire:init', initialiseHelpdeskTicketShowInteractions);", $view);
|
|
self::assertStringContainsString("card.dataset.open = isOpen ? 'false' : 'true';", $view);
|
|
self::assertStringContainsString("header.setAttribute('aria-expanded', isOpen ? 'false' : 'true');", $view);
|
|
}
|
|
|
|
/**
|
|
* Inline styles must stay inside the Livewire root element so the component root remains stable.
|
|
*/
|
|
public function test_ticket_show_does_not_place_style_before_livewire_root(): void
|
|
{
|
|
$viewPath = dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-show.blade.php';
|
|
$view = file_get_contents($viewPath);
|
|
|
|
self::assertIsString($view);
|
|
self::assertLessThan(
|
|
strpos($view, '<style>'),
|
|
strpos($view, '<div data-dusk="helpdesk-ticket-show"'),
|
|
);
|
|
}
|
|
}
|