Проверка события в Livewire
Давайте разберём такой случай. После сохранения поста другие блоки на странице должны узнать, что запись готова, а в тесте этого не видно, если смотреть только свойства.
Метод assertDispatched
в цепочке теста проверяет,
что компонент вызвал
метод dispatch с нужным
именем события.
Так мы фиксируем сигнал
для соседних блоков
без реального слушателя.
Давайте создадим компонент
PostSend, который
сообщает о сохранении:
php artisan make:livewire PostSend --class
php artisan make:test PostSendTest
<?php
namespace App\Livewire;
use Livewire\Component;
class PostSend extends Component
{
public function save()
{
$this->dispatch('saved');
}
public function render()
{
return view('livewire.post-send');
}
}
?>
Давайте вызовем сохранение и проверим событие:
<?php
namespace Tests\Feature;
use Tests\TestCase;
use App\Livewire\PostSend;
use Livewire\Livewire;
class PostSendTest extends TestCase
{
public function test_save_dispatches_event(): void
{
Livewire::test(PostSend::class)
->call('save')
->assertDispatched('saved');
}
}
?>
Создайте компонент
EmployeeSend и тест
EmployeeSendTest.
Сохранение работника
сообщает, что запись готова.