Проверка ошибок в Livewire
Давайте теперь возьмём сохранение поста с пустым заголовком: на странице рядом с полем появится сообщение, а запись не уйдёт дальше. Вручную это легко пропустить при правках правил.
Метод assertHasErrors в цепочке
теста смотрит, остались
ли у компонента сообщения
валидации после вызова
метода с неверными данными.
Так мы фиксируем отказ
без браузера и без
отправки формы.
Давайте создадим компонент
PostCheck с проверкой
заголовка:
php artisan make:livewire PostCheck --class
php artisan make:test PostCheckTest
<?php
namespace App\Livewire;
use Livewire\Component;
class PostCheck extends Component
{
public $title = '';
public function save()
{
$this->validate([
'title' => 'required',
]);
}
public function render()
{
return view('livewire.post-check');
}
}
?>
Давайте вызовем сохранение с пустым заголовком и ожидаем ошибку поля:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Livewire\PostCheck;
use Livewire\Livewire;
class PostCheckTest extends TestCase
{
public function test_empty_title_has_error(): void
{
Livewire::test(PostCheck::class)
->call('save')
->assertHasErrors(['title']);
}
}
?>
Создайте компонент
EmployeeCheck и тест
EmployeeCheckTest.
Пустое имя работника
оставляет ошибку проверки.