assertIsString($view); $this->assertIsString($editor); $this->assertStringContainsString('wire:model="body"', $view); $this->assertStringNotContainsString('wire:model.live="body"', $view); $this->assertStringContainsString('form.addEventListener(\'submit\'', $editor); $this->assertStringContainsString('this.$wire.set(this.model, this.value, false)', $editor); } /** * The rich text editor must not fire a Livewire request for every keystroke, * otherwise the submit button can remain disabled and typed content can race * with stale Livewire responses. */ public function test_ticket_create_editor_does_not_live_sync_on_each_keypress(): void { $editor = file_get_contents(base_path('Modules/Helpdesk/Resources/views/components/html-editor.blade.php')); $this->assertIsString($editor); $this->assertStringNotContainsString('x-on:keyup="sync"', $editor); $this->assertStringNotContainsString('this.$wire.set(this.model, this.value);', $editor); $this->assertStringContainsString('x-on:input.debounce.250ms="sync(false)"', $editor); $this->assertStringContainsString('autocorrect="off"', $editor); $this->assertStringContainsString('autocomplete="off"', $editor); $this->assertStringContainsString('spellcheck="true"', $editor); } }