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

424
Vistas
Cypress: espere todas las solicitudes al punto final /graphql

Estoy tratando de agregar una wait a todas las solicitudes a /graphql . Me gustaría que las solicitudes esperaran automáticamente. Sin embargo, recibo el siguiente error:

Cypress detectó que usted devolvió una promesa de un comando al mismo tiempo que invocaba uno o más comandos cy en esa promesa.

He intentado varias formas de agregarlo (tenga en cuenta que estoy configurando el alias como se menciona aquí ):

 Before(() => { cy.intercept('POST', '**/graphql', handleGraphql); }); function handleGraphql(req) { req.alias = `gql${req.headers['query-id']}Query`; // The different ways that I have tried: setTimeout(() => cy.wait(`@gql${req.headers['query-id']}Query`), 100); new Cypress.Promise(() => cy.wait(`@gql${req.headers['query-id']}Query`)) }

Entonces también probé esta función:

 function handleGraphql(req) { req.alias = `gql${req.headers['query-id']}Query`; cy.wait(`@gql${req.headers['query-id']}Query`); }

pero luego me sale el siguiente error:

Se agotó el tiempo de reintento después de 5000 ms: cy.wait() se agotó el tiempo de espera de 5000 ms para la primera solicitud a la ruta: gql9b93b362-d715-4aae-928b-71b406381350Query. Nunca se produjo ninguna solicitud.

Descubrí que puede agregar algunos eventos al req , pero ninguno de ellos parece hacer lo que quiero, ya que recibo returned a promise desde arriba.

 function handleGraphql(req) { req.alias = `@gql${req.headers['query-id']}Query`; req.continue(() => { cy.wait(`@gql${req.headers['query-id']}Query`); }); }
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Cypress detectó que devolviste una promesa de un comando... se refiere al hecho de que estás esperando el alias de intercepción dentro del controlador.

Dado que el controlador es un código de respuesta de evento, el patrón habitual es

 cy.intercept(...) // set up the listener cy.visit(...) // trigger the events (might also be from UI evnt like click()) cy.wait('@my-alias')

Pero esto significa que los alias deben conocerse con anticipación.

Lo más simple es si puedes encontrar todas las identificaciones,

 const aliases = ['1', '2', '3'].map(id => `@gql${id}Query`) const handleGraphql = (req) => req.alias = `gql${req.headers['query-id']}Query`; before(() => { cy.intercept('POST', '**/graphql', handleGraphql) // set up the listener }) it('waits for all ids', () => { cy.visit(...) // trigger the events (might also be from UI event like click()) cy.wait(aliases) }

Si no puede ser específico acerca de las identificaciones, debe esperar un tiempo arbitrario para que se realicen todas las solicitudes (lo cual es inestable si la espera es demasiado corta o molesto si la espera es demasiado larga) o afirmar un elemento o otro artefacto DOM que solo aparece después de que finalizan todas las solicitudes.


Se generan sus identificaciones, así que no las use en el alias. Use un alias "genérico" y espere el conteo requerido

 const calls = 4 before(() => { cy.intercept('POST', '**/graphql').as('gqlQuery') }) it('waits for all ids', () => { cy.visit(...) // trigger the events (might also be from UI event like click()) cy.wait(`@gqlQuery.${calls}`) }

Hay algunas advertencias sobre la sintaxis de alias.n sin documentar, pero podría sub-en

 Cypress._.times(calls => cy.wait('@gqlQuery')
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