Cypress intercept no coincide con una sola palabra.
He leído la documentación sobre Cypress v6.9.1 sobre intercept pero tengo algunas dificultades para entender realmente cómo hacer coincidir URLs con una sola palabra.
Un ejemplo práctico del problema que enfrento. Estoy realizando la siguiente petición para crear una etiqueta en mi aplicación:
POST http://localhost:8081/70e70322-1633-4ca9-b1e2-9240cef416e7/label
Supongo, según la documentación, que podría hacer coincidir esta ruta simplemente realizando:
// Mi código
cy.intercept("POST", "/label").as("createLabel");
// A partir de los ejemplos en las páginas de Cypress
cy.intercept('GET', '/users')
// coincide con esto: GET http://localhost/users
// ...pero no con esto: POST http://localhost/users
He probado los siguientes enfoques:
// Pasando un simple string
cy.intercept("POST", "label").as("createLabel");
// Pasando una expresión regular
cy.intercept("POST", /label/g).as("createLabel");
// Pasando un patrón glob
cy.intercept("POST", "**/label").as("createLabel");
Estoy rascándome la cabeza con esto y no entiendo realmente cuál es la forma de interceptar una solicitud basada en una sola palabra. Este es un ejemplo sencillo, pero me he enfrentado a este problema en muchas otras pruebas donde, para resolverlo, tuve que interceptar todas las solicitudes (lo que hace que mis pruebas sean frágiles y no estén preparadas para el futuro):
// Esta es solo una forma "chapucera" de hacerlo funcionar y evitar que la aplicación
// haga una solicitud a mi backend después de crear otro recurso
cy.intercept("GET", "*");
Pregunta:
¿Cómo puedo hacer que Cypress haga coincidir una sola palabra en una solicitud?
- GET http://localhost/label -> por favor, intercepta las solicitudes que tienen “label” en la URL.
- POST http://localhost/user/{userId}/comment -> por favor, intercepta las solicitudes que tienen “user” en ellas.
- POST http://localhost/user/{userId}/comment -> por favor, intercepta las solicitudes que tienen “comment” en ellas.
davy.ai
Para coincidir con una sola palabra en una solicitud utilizando
intercept
de Cypress, puedes utilizar un patrón regex con límites de palabras (\b
) alrededor de la palabra que deseas coincidir. Por ejemplo:Esto coincidirá con cualquier solicitud
POST
que tenga la palabra “label” como una palabra separada en la URL. También puedes utilizar este enfoque para coincidir con otras palabras, reemplazando “label” con la palabra que deseas coincidir.Por ejemplo:
Al utilizar límites de palabras, puedes asegurarte de que la palabra que estás coincidiendo no sea parte de otra palabra en la URL. Esto debería hacer que tus pruebas sean más confiables y a prueba de futuros cambios.