44 lines
1.8 KiB
PHP
44 lines
1.8 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Modules\Helpdesk\Tests\Feature;
|
|
|
|
use Tests\TestCase;
|
|
|
|
final class TicketCreateEditorSyncFilesTest extends TestCase
|
|
{
|
|
/**
|
|
* The ticket create editor must not send Livewire requests while typing.
|
|
* Eager key/input sync causes disabled submit states, random content
|
|
* replacement, and prevents native spellcheck from settling.
|
|
*/
|
|
public function test_ticket_create_editor_does_not_sync_livewire_on_keypress_or_input(): void
|
|
{
|
|
$editor = file_get_contents(base_path('Modules/Helpdesk/Resources/views/components/html-editor.blade.php'));
|
|
|
|
$this->assertIsString($editor);
|
|
$this->assertStringNotContainsString('x-on:input', $editor);
|
|
$this->assertStringNotContainsString('x-on:keyup', $editor);
|
|
$this->assertStringContainsString('contenteditable="true"', $editor);
|
|
$this->assertStringContainsString('spellcheck="true"', $editor);
|
|
$this->assertStringContainsString('this.$wire.set(this.model, this.value, live)', $editor);
|
|
$this->assertStringContainsString('syncToLivewire(false)', $editor);
|
|
}
|
|
|
|
/**
|
|
* The create form must push the rich editor body to the Livewire property
|
|
* during submit capture, before the save action validates the body field.
|
|
*/
|
|
public function test_ticket_create_form_syncs_body_before_submit_validation(): void
|
|
{
|
|
$view = file_get_contents(base_path('Modules/Helpdesk/Resources/views/livewire/ticket-create.blade.php'));
|
|
|
|
$this->assertIsString($view);
|
|
$this->assertStringContainsString('wire:model="body"', $view);
|
|
$this->assertStringContainsString('x-on:submit.capture', $view);
|
|
$this->assertStringContainsString('helpdesk-editor-sync', $view);
|
|
$this->assertStringNotContainsString('wire:model.live="body"', $view);
|
|
}
|
|
}
|