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.
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 
Sin internet. Firefox puede usar la búsqueda 
Sin internet. Chrome puede usar la búsqueda 
Algo raro. Sin Internet, Chrome dijo que window.navigator.onLine es verdadero 
¿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.
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.