Тесты в Inertia
Страница Inertia собирается из двух частей: сервер отдаёт имя компонента и пропсы, клиент рисует экран по этим данным. Ошибка может прятаться и в PHP, и в Vue, и на стыке между ними. Поэтому проверки обычно делят на несколько уровней, а не полагаются на один способ.
Сценарии в браузере через Cypress или Pest дают уверенность, что человек видит рабочий интерфейс: клики, переходы и JavaScript выполняются по-настоящему. Модульные тесты на Vitest или Jest проверяют отдельные Vue-компоненты в Node.js, без полного Laravel. Оба подхода полезны, но они медленнее или смотрят только на клиентскую часть.
Для Laravel привычен ещё
один слой - endpoint-тест:
запрос на адрес приложения
и разбор ответа. Так можно
убедиться, что контроллер
вернул Inertia с нужным
компонентом и массивом пропсов,
не поднимая браузер. Адаптер
Inertia для Laravel добавляет
к обычному HTTP-тесту метод
assertInertia и цепочку
утверждений над объектом
AssertableInertia.
В этом разделе мы сосредоточимся именно на таких серверных проверках ответа Inertia. Они короткие, хорошо вписываются в привычный PHPUnit и позволяют быстро поймать регрессию в маршруте или контроллере.
Со всем этим мы и будем разбираться в рамках данного раздела.