53 lines
2.5 KiB
PHP
53 lines
2.5 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Tests\Feature;
|
|
|
|
use Tests\TestCase;
|
|
|
|
final class TicketCreateAttachmentBrowserSafetyTest extends TestCase
|
|
{
|
|
public function test_ticket_create_view_does_not_reinject_application_assets_inside_livewire_component(): void
|
|
{
|
|
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
|
|
|
self::assertIsString($view);
|
|
self::assertStringNotContainsString("@vite(['resources/css/app.css', 'resources/js/app.js'])", $view);
|
|
self::assertStringContainsString('wire:submit.prevent="save"', $view);
|
|
}
|
|
|
|
public function test_ticket_create_attachment_input_is_owned_by_livewire_and_has_a_stable_key(): void
|
|
{
|
|
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
|
|
|
self::assertIsString($view);
|
|
self::assertStringContainsString('wire:key="ticket-create-attachments-uploader"', $view);
|
|
self::assertStringContainsString('wire:key="ticket-create-attachments-input"', $view);
|
|
self::assertStringContainsString('type="file" wire:model="attachments" multiple', $view);
|
|
self::assertStringNotContainsString('$wire.uploadMultiple', $view);
|
|
self::assertStringNotContainsString("new CustomEvent('livewire-upload-start'", $view);
|
|
self::assertStringNotContainsString("new CustomEvent('livewire-upload-finish'", $view);
|
|
}
|
|
|
|
public function test_ticket_create_attachment_script_registers_global_listeners_once(): void
|
|
{
|
|
$view = file_get_contents(dirname(__DIR__, 2) . '/Resources/views/livewire/ticket-create.blade.php');
|
|
|
|
self::assertIsString($view);
|
|
self::assertStringContainsString('window.__helpdeskTicketCreateAttachmentListenersRegistered', $view);
|
|
self::assertStringContainsString('window.__helpdeskTicketCreateLivewireClearListenerRegistered', $view);
|
|
self::assertStringContainsString("window.dispatchEvent(new CustomEvent('helpdesk-attachments-reset'))", $view);
|
|
}
|
|
|
|
public function test_create_attachment_browser_test_does_not_use_livewire_internal_dom_selectors(): void
|
|
{
|
|
$test = file_get_contents(dirname(__DIR__, 1) . '/Browser/HelpdeskCreateTicketAttachmentBrowserTest.php');
|
|
|
|
self::assertIsString($test);
|
|
self::assertStringNotContainsString('closest(', $test);
|
|
self::assertStringNotContainsString('Livewire.find', $test);
|
|
self::assertStringContainsString("attach('#attachments'", $test);
|
|
}
|
|
}
|