QA The Other WayGarantía de calidad en la era de la automatización con IA. QA The Other Way.
QA práctico

Route fallback conserva la cadena de manejadores.

Revisa el orden de registro antes de continuar una petición interceptada.

5 min de lecturaQA The Other Way
Una cadena de manejadores junto a una ruta directa a un servidor inventado.
Ilustración editorial propia.
Vídeo ilustrativo de este artículo. Texto en pantalla en inglés; seleccione subtítulos para este idioma.

Edición traducida. Los identificadores técnicos permanecen en su forma original.

Revisa el orden de registro antes de continuar una petición interceptada.
Ejemplo local con datos inventados, no una interfaz de cliente o proveedor.

Un test local registra una fixture de respuesta y luego un observador del mismo endpoint. El observador llama a continue(). La fixture no se ejecuta; la petición llega al servidor. El método de transferencia determina el comportamiento conjunto.

La API Route documenta el orden inverso de registro. El último manejador coincidente recibe primero la petición. fallback() la pasa al siguiente; continue() la envía inmediatamente a la red sin llamar a los demás.

Define primero la cadena

Para /demo-value, registra la fixture antes del observador. El observador corre primero y la fixture después. Su cadena controlada debe evitar una llamada al endpoint del servidor local.

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();
});

El ejemplo supone una página local y una petición posterior. Comprueba texto recibido y orden registrado. El valor fixture no demuestra que corrió el observador; el registro no demuestra el contenido recibido.

Nuestro servidor cuenta llamadas. Con fallback: observer, fixture, fixture value y cero llamadas. Una página nueva usa continue: server value, solo observer y una llamada al servidor.

Muestra cada salida

Un observador lee y delega. Una fixture responde con fulfill; un bloqueador aborta con abort. Cada rama necesita una salida explícita para no dejar esperando la petición. Si un manejador condicional no posee esa petición, fallback permite decidir al siguiente.

La API permite cambios durante fallback. Alteran la entrada de manejadores posteriores y deben revisarse. Aquí no hay cambios, credenciales ni cabeceras privadas. Aislamos el control, no la propagación de cabeceras.

Rutas amplias y estrechas pueden solaparse. Lee todos los registros, incluidos helpers compartidos. Su momento de llamada determina el orden más que su posición en el archivo. Incluye el orden observado en el informe en vez de deducirlo del aspecto del código.

Comprueba la red por separado

Una ruta respondida localmente comprueba comportamiento con esa respuesta, no al proveedor real. Incluso continue llega solo a un servidor local inventado. Separa la integración y usa un entorno autorizado para tráfico externo.

Las páginas nuevas separan registros. Si cambias rutas dentro de un test, elimina explícitamente el manejador previsto y espera el trabajo relevante. La limpieza no debe cambiar silenciosamente el siguiente caso.

Anota endpoint, orden, salidas, respuesta y prueba del servidor. AnyTest describe exploración y tests revisables. Pregunta qué dependencia respondió. No se afirma una función específica de interceptación de AnyTest.

Preguntas comunes

¿continue llama al siguiente manejador?

No. Envía inmediatamente a la red.

¿fallback garantiza una llamada al servidor?

No. Otro manejador puede responder o abortar.

Fuentes