Route fallback сохраняет цепочку обработчиков.
Проверьте порядок регистрации перед выбором продолжения перехваченного запроса.

Переведенное издание. Технические идентификаторы остаются в своей первоначальной форме.

Локальный тест регистрирует фикстуру ответа, затем наблюдателя для того же адреса. Наблюдатель вызывает continue(), желая продолжить запрос. Фикстура не выполняется, запрос достигает сервера. Совместное поведение зависит от способа передачи управления.
Route API описывает обратный порядок регистрации. Последний подходящий обработчик получает запрос первым. fallback() передаёт его следующему подходящему обработчику; continue() немедленно отправляет в сеть, не вызывая остальных.
Сначала задайте цепочку
Для вымышленного /demo-value зарегистрируйте фикстуру раньше наблюдателя. Наблюдатель выполнится первым, фикстура следующей. Локальный ответ содержит контролируемую строку, поэтому обработчик адреса на сервере не должен получить вызов.
const order: string[] = [];
await page.route('**/demo-value', async route => {
order.push('fixture');
await route.fulfill({ status: 200, body: 'fixture value' });
});
await page.route('**/demo-value', async route => {
order.push('observer');
await route.fallback();
});Пример предполагает страницу локального теста и последующий запрос. Проверяйте возвращённую строку и записанный порядок. Значение фикстуры не доказывает выполнение наблюдателя, а журнал обработчиков не показывает полученное страницей содержимое.
Наш сервер считает вызовы адреса. При fallback порядок observer, fixture; страница получает fixture value, число серверных вызовов ноль. Отдельная свежая страница использует continue. Она получает server value, записывает только observer и увеличивает счётчик до одного.
Покажите выход каждого обработчика
Наблюдатель может прочитать запрос и передать дальше. Фикстура отвечает через fulfill, блокирующий обработчик через abort. У каждой ветки должен быть явный выход: не оставляйте запрос ждать случайно. Если условный обработчик не отвечает за запрос, fallback передаёт решение следующему.
API разрешает изменения запроса при fallback. Они меняют вход следующего обработчика, поэтому проверяйте их при ревью. Здесь нет изменений, учётных данных или частных заголовков. Пример изолирует передачу управления, не распространение заголовков.
Широкий маршрут может пересекаться с узким. Просмотрите все регистрации настройки, включая общие вспомогательные функции. Время вызова помощника влияет на порядок сильнее расположения в файле. Запишите наблюдённый порядок в отчёт, не выводите выполнение из внешнего вида кода.
Отдельно проверяйте сетевую границу
Локально обработанный маршрут доказывает поведение с предоставленным ответом, не реального поставщика. Вариант continue обращается только к вымышленному локальному серверу. Интеграционную проверку держите отдельно, внешние обращения выполняйте в разрешённой среде.
Свежие страницы разделяют регистрации двух примеров. Если меняете маршруты внутри теста, явно удаляйте нужный обработчик и дождитесь завершения связанной работы. Очистка не должна незаметно менять настройку следующего случая.
При ревью запишите адрес, порядок, выходы, тело ответа и серверное доказательство. AnyTest описывает исследование приложения и тесты для ревью. Спрашивайте, какая зависимость ответила. Конкретная функция перехвата AnyTest здесь не заявлена.
Общие вопросы
Вызывает ли continue следующий обработчик?
Нет. Он сразу отправляет запрос в сеть.
Гарантирует ли fallback обращение к серверу?
Нет. Следующий обработчик может ответить локально или прервать запрос.