РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
⊗pplwSpTsFl 101 of 102 menu
◀ ▶

Файл в тесте в Livewire

Пусть компонент поста принимает вложение с диска, а после сохранения должен запомнить имя файла. В тесте нет настоящей загрузки через браузер и нет реального файла на диске.

Поддельный файл через метод fake и метод create даёт объект такого же вида, как после формы. Его можно передать в свойство с трейтом загрузки и дальше прогнать сценарий как с обычным вложением.

Давайте создадим компонент PostFile с полем фото:

php artisan make:livewire PostFile --class php artisan make:test PostFileTest
<?php namespace App\Livewire; use Livewire\Component; use Livewire\WithFileUploads; class PostFile extends Component { use WithFileUploads; public $photo; public $name = ''; public function keep() { $this->name = $this->photo ->getClientOriginalName(); } public function render() { return view('livewire.post-file'); } } ?>

Давайте в тесте подставим файл, вызовем сохранение имени и сверим свойство:

<?php namespace Tests\Feature; use Tests\TestCase; use App\Livewire\PostFile; use Livewire\Livewire; use Illuminate\Http\UploadedFile; class PostFileTest extends TestCase { public function test_file_name_is_kept(): void { $file = UploadedFile::fake() ->create('note.txt', 10); Livewire::test(PostFile::class) ->set('photo', $file) ->call('keep') ->assertSet('name', 'note.txt'); } } ?>

Создайте компонент EmployeeFile и тест EmployeeFileTest. Поддельный файл с именем portrait.png попадает в компонент работника.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить