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

364
Vistas
Cypress no intercepta correctamente las llamadas de mosaicos de mapas de folletos

Estoy probando una aplicación basada en un folleto de reacción en ciprés. Para evitar hacer toneladas de solicitudes de maptile reales, estoy tratando de interceptar llamadas al servidor maptile de mapbox y reemplazarlas con un mosaico ficticio. Hago esto en mi archivo cypress/support.index.js :

 /** * Intercept all calls for mapbox tiles and replace with dummy tile */ beforeEach(() => { console.log("in beforeach"); cy.intercept("https://api.mapbox.com/**/*", { fixture: "images/tile.png", }); });

Una prueba sencilla:

 describe("The map", () => { it("Tiles should be dummy tiles, not actual tiles", () => { cy.visit("http://localhost:3000"); }); });

Eché un vistazo a los recursos de folletos simulados en Cypress y esta táctica pareció funcionar para esta persona. Cuando ejecuto una prueba, veo el registro in beforeach , por lo que sé que se está ejecutando. Sin embargo, en mi prueba, ni siquiera veo las llamadas que hace el folleto para obtener mosaicos en la lista de solicitudes de red. Como ve a la izquierda, solo veo solicitudes XHR. Pero cuando abro la pestaña de red de Cypress Runner, claramente estamos solicitando los mosaicos (cosas patentadas encubiertas):

ingrese la descripción de la imagen aquí

¿Por qué Cypress ni siquiera muestra las llamadas que se realizan para obtener mosaicos de mapas? ¿Por qué no se interceptan las llamadas y se reemplazan los mosaicos con el ficticio?

Estoy usando Cypress 9.5.2, ejecutando Chrome 99, con Leaflet 1.7.1 y NexJS 10.2.0.

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

0

Creo que podría obtener mosaicos de mapas del caché, al menos eso es lo que encontré al probar la intercepción en mi proyecto.

Consulte Problemas de intercepción de Cypress: respuesta en caché

El servidor determina la "clave de caché" de datos en este caso al observar el encabezado de solicitud si no coincide enviado por la aplicación web.

Prueba esto para deshabilitar el almacenamiento en caché

 cy.intercept('https://api.mapbox.com/**/*', req => { delete req.headers['if-none-match']; req.reply({ fixture: 'images/tile.png' }) })

Lo anterior funcionó y luego no, y no puedo entenderlo.

Como alternativa, puede activar el interruptor en devtools de la siguiente manera

 cy.wrap(Cypress.automation('remote:debugger:protocol', { command: 'Network.clearBrowserCache', })) cy.intercept("https://api.mapbox.com/**/*", { fixture: "images/tile.png", })
about 4 years ago · Juan Pablo Isaza Denunciar

0

Dado que está utilizando Next, ¿la aplicación obtiene los mosaicos en el servidor antes de que se cargue la página?

Sé que hay varios interruptores/modos, pero no mencionaste SSR, así que parece que deberías considerarlo.

Sin detalles de la aplicación, es difícil darte el código, pero aquí hay un poco de código.

  • Las pruebas de componentes de Cypress interceptan las solicitudes de getServerSideProps

  • Simular red al usar Next.js llamada getServerSideProps

que puede ser útil.

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