En mi antesCada que tengo
cy.intercept('GET', '**/api/v2/invoices**').as('getPaidInvoices');Tengo algunas pruebas en las que uso getPaidInvoices con exactamente la misma ruta. Pero luego tengo una prueba diferente
cy.intercept('GET', '**/api/v2/invoices**').as('getInvoices'); cy.wait('@getInvoices').then((xhr) => { expect(xhr.response.statusCode).to.equal(200);Luego tengo cy con cada bucle para opciones en el menú desplegable. Al hacer clic en cada opción dentro, espero una solicitud diferente para cada opción. La dirección es casi la misma, excepto que los dos últimos ** obtendrán argumentos diferentes.
El problema parece que a Cypress no le gusta compartir el valor de getPaidInvoices con GetInvoices. en la linea con
cy.intercept('GET', '**/api/v2/invoices**').as('getInvoices');dice "Esta solicitud coincidió: cy.intercept () espiar con alias @getPaidInvoices
¿Hay algún trabajo alrededor? Necesito " /api/v2/invoices " para usar mis múltiples alias. ¿O hay opción de hacerlo sin alias?
Gracias
Esta parte 'GET', '**/api/v2/invoices**' es el "routeMatcher". Cuando dos interceptaciones usan el mismo routeMatcher, se supone que la última definida es la que maneja la llamada.
Sin embargo, según tu descripción, parece ser al revés.
Hay un par de formas de manejarlo, la mejor IMO es usar una función y asignar el alias dentro de ella
De solicitudes individuales de alias
cy.intercept('GET', '**/api/v2/invoices**', (req) => { // test the url string if (req.url.includes('paid')) { // check the arguments req.alias = 'getPaidInvoices' } else { req.alias = 'getInvoices' } })