Прочие пропсы в Inertia
Бывает, что в ответе у работника много полей, а тест должен проверить только имя. Inertia следит, чтобы внутри области видимости вы затронули каждый пропс: если поле есть в JSON, но к нему не обращались, утверждение упадёт. Это защищает от случайных изменений, но мешает, когда часть данных намеренно неважна для сценария.
Метод etc говорит
фреймворку: остальные ключи
на этом уровне можно не
перечислять. Его ставят
в конце цепочки внутри
области после явных проверок
важных полей. Часто рядом
используют метод missing,
чтобы запретить отдельные
ключи, а всё остальное
закрыть через etc.
Давайте оставим проверку имени и разрешим прочие поля:
<?php
namespace Tests\Feature;
use Inertia\Testing\AssertableInertia as Assert;
use Tests\TestCase;
class WorkersPageTest extends TestCase
{
public function test_worker_allows_extra_fields(): void
{
$this->get('/workers/1')
->assertInertia(fn (Assert $page) => $page
->has('worker', fn (Assert $page) => $page
->has('name')
->etc()
)
);
}
}
Сделайте тест карточки
мастера, чтобы проверялось
поле role, а остальные
ключи объекта master
можно было не перечислять.