Estoy usando Cypress en mi próxima aplicación js para probar una página. Necesito probar 2 escenarios: 1. Éxito y 2. Incorrecto cuando el usuario recibe un error.
Before(() => { return void cy.server() }); // first scenario Given('the user access app', () => { ... }); And('the user make request', () => { cy.route('GET', `${api}/cars`, 'fixture:good').as('goodRequest'); }); Then('the user should see good answer', () => { cy.get('[data-cy=ok]').should('exist') }) //second scenario Given('the user access app', () => { ... }); And('the user make request', () => { cy.route('GET', `${api}/cars`, 'fixture:bad').as('badRequest'); }); Then('the user should see bad answer', () => { cy.get('[data-cy=bad]').should('exist') })
La primera prueba pasó, pero cuando comienza la segunda, de todos modos obtengo la respuesta anterior de la primera solicitud y obtengo en la página la buena respuesta y la prueba falla porque el texto incorrecto no aparece en la página.
¿Hay alguna solución para restablecer la respuesta después de cada prueba o algo así? ¿Cómo resolver el problema?
No use cy.route()
para enviar solicitudes, use cy.request()
.
And('the user make request', () => { cy.request('GET', `${api}/cars`).as('goodRequest'); });