Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

347
Vistas
Cypress: how to test routes status code throughout entire test?

I have a test where a certain fetch request is happening around 70 times and at the end of the test I need to check that all the status codes were 200 or 204. So far I am intercepting the request and can check the response.statusCode for that 1 request but I'm having trouble doing it for the rest. Here is what I have so far.

it('Testing', function () {
        cy.intercept('proxy/test*').as('test')
        cy.visit('/user/test');
        const aliases = [];
        for (let i = 1; i <= 70; i++){
            aliases.push('@test')
        }
        .............
        .............
        cy.wait(aliases).its('response.statusCode').should('eq', 200 || 204)

The error I am getting is

Timed out retrying after 4000ms: cy.its() errored because the property: response does not exist on your subject.

cy.its() waited for the specified property response to exist, but it never did.

Can anyone help with this?

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

You said around 70 times, so if you test exactly 70 times and it's actually 69 you get a fail, even if all statusCodes are correct.

So you'll need a criteria that tells the test that fetches have stopped, usually something on the screen only appears after the final fetch.

Failing that, you can use a fixed wait, but generally you would try to avoid that.

Ref Intercepting-a-response

const statusCodes = []

cy.intercept('proxy/test*', (req) => {
  req.continue((res) => {
    statusCodes.push(res.statusCode)
  })
}).as('test')

// assert an element on page that only appears after all fetches finished

cy.wrap(statusCodes).should(codes => {
  expect(codes.every(code => code === 200 || code === 204)).to.eq(true)
})

If you do know the exact number of fetches, it's easier

const statusCodes = []

cy.intercept('proxy/test*', (req) => {
  req.continue((res) => {
    statusCodes.push(res.statusCode)
  })
}).as('test')

Cypress._.times(70, () => cy.wait('@test'))  // exact call count is known

cy.wrap(statusCodes).should(codes => {
  expect(codes.every(code => code === 200 || code === 204)).to.eq(true)
})
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda