Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.
Как в Playwright перехватить и модифицировать ответ от API для тестирования UI?
Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Установите page.route до действия, получите исходный ответ через route.fetch, измените JSON и верните его через route.fulfill. Для полностью искусственного ответа fetch не требуется.
Пример для тестового endpoint с полем status:
await page.route('**/api/order/42', async route => {
const response = await route.fetch();
const data = await response.json();
data.status = 'pending';
await route.fulfill({ response, json: data });
});
После установки маршрута выполните UI-действие и проверьте состояние интерфейса. Убедитесь, что маршрут совпадает с нужным запросом, а service worker не обходит ожидаемый перехват. Такой тест проверяет реакцию UI на подменённые данные, а не истинность backend-результата.
Источник: playwright.dev.