• Empleos
  • Sobre nosotros
  • Empleos
    • Inicio
    • Empleos
    • Cursos y retos
  • Empresas
    • Inicio
    • Publicar vacante
    • Nuestro proceso
    • Precios
    • Evaluaciones
    • Contrata talento tech
    • Blog
    • Comercial
    • Calculadora de salario

0

156
Vistas
¿Cómo puedo probar automáticamente Service Workers en modo fuera de línea? Probando con ciprés

Desarrollé algunos trabajadores de servicio, pero cuando el complejo de trabajadores de servicio (SW) aumenta, quiero crear una batería de pruebas para verificarlo regularmente.

Decidí usar Cypress en primera instancia. Pero lucho con algunos problemas que no me dejan manejar la situación.

  1. Modo offline. Cypress no tiene un caso de uso nativo, pero tiene una receta para Chrome (no importa si solo funciona en un navegador único)
  2. Cuando la receta del modo fuera de línea está activa, la búsqueda no funciona correctamente en la prueba.

Cypress Open Issues - Simula el modo fuera de línea #235

Receta del modo sin conexión de Cypress para Chrome

La misma web funciona en el navegador pero no en la prueba de ciprés.

código de prueba de ciprés

 it('can load if sw registered and try to visit', () => { cy.visit(folder) cy.contains('#sw-status', 'SW not registered') cy.get('#register').click().wait(1000) Cypress.goOffline() Cypress.assertOffline() cy.get('#fetch').click() cy.contains('#fetch-response', '200') })

Excepción atrapada en ciprés: no se pudo obtener Cypress - Recuperar no funciona. Excepción

Sin internet. Firefox puede usar la búsqueda Firefox Obtener Ok

Sin internet. Chrome puede usar la búsqueda Búsqueda de cromo Ok

Algo raro. Sin Internet, Chrome dijo que window.navigator.onLine es verdadero window.navigator.onLine difiere de Firefox/Chrome

¿Cualquier sugerencia? ¿Probar con otro marco de prueba?

Creo que la explicación del problema es completa y completa, pero si alguien piensa que podría ser útil, puedo compartir el código sin problemas.

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

0

Después de un tiempo hice una búsqueda más profunda en los temas de ciprés.

Encontré un comentario que hablaba de un problema en algunas situaciones cuando NO usaba localhost como nombre de servidor (estaba usando TLD personalizado con Valet para Linux , por lo que estaba muy relacionado con mi problema). Espero que si estás en mi situación no necesites sumergirte en el mismo proceso.

Así que compruebo con la nueva configuración y MÁGICAMENTE todo funciona!.

Todo lo que hice fue iniciar un servidor usando localhost y luego ejecutar las pruebas (automáticamente o con cypress UI)

 // package.json // 'npm test' to run tests automatically // 'npm run test:ui' to run with cypress UI "scripts": { "start": "http-server -a localhost -p 3030 -c-1", "cy:run": "cypress run", "cy:ui": "cypress open", "test": "start-server-and-test start http://localhost:3030 cy:run", "test:ui": "start-server-and-test start http://localhost:3030 cy:ui", },`

He compartido los primeros intentos en un repositorio.

Dune Browsing: exploración de la capacidad de prueba de los trabajadores de servicios en modo fuera de línea.

almost 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 Nuestro proceso Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda