assertIsString($view); $this->assertStringContainsString('x-on:livewire-upload-start="helpdeskAttachmentsUploading = true"', $view); $this->assertStringContainsString('x-on:livewire-upload-finish="helpdeskAttachmentsUploading = false"', $view); $this->assertStringContainsString('x-on:livewire-upload-error="helpdeskAttachmentsUploading = false"', $view); $this->assertStringContainsString('x-on:livewire-upload-cancel="helpdeskAttachmentsUploading = false"', $view); $this->assertStringContainsString('wire:target="save,attachments"', $view); $this->assertStringContainsString('x-bind:disabled="helpdeskAttachmentsUploading"', $view); $this->assertStringContainsString('$event.preventDefault();', $view); } /** * The shared attachment service must explicitly support Livewire temporary * uploads as well as controller UploadedFile instances. */ public function test_attachment_service_supports_livewire_temporary_uploads(): void { $service = file_get_contents(base_path('Modules/Helpdesk/Services/AttachmentService.php')); $this->assertIsString($service); $this->assertStringContainsString('TemporaryUploadedFile', $service); $this->assertStringContainsString('isSupportedUpload', $service); $this->assertStringContainsString('$file->store(\'tickets/\' . $ticket->id, $disk)', $service); $this->assertStringNotContainsString('! $file instanceof UploadedFile || ! $file->isValid()', $service); } }