Skip to content

Commit b8f6b93

Browse files
committed
trying to uninstall all SW and clear caches
1 parent a48e2b7 commit b8f6b93

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

cypress/integration/no-sw-spec.js

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/* eslint-env mocha */
2+
/* global cy, Cypress */
3+
describe('Without ServiceWorker', () => {
4+
// cleaning anything cached by the ServiceWorker
5+
// and preventing ServiceWorker from registering
6+
// https://github.com/cypress-io/cypress/issues/702
7+
const clearCache = (name) =>
8+
window.caches.delete(name)
9+
10+
const clearCaches = () =>
11+
window.caches.keys().then(cacheNames =>
12+
Promise.all(cacheNames.map(clearCache)))
13+
14+
// prevents new service worker registration
15+
const neverRegisterSW = (win) => {
16+
// use a promise that never resolves
17+
const neverResolves = new Promise(resolve => {})
18+
win.navigator.serviceWorker.register = () => neverResolves
19+
}
20+
21+
// unregisters any service workers already registered
22+
const unregisterWorkers = (win) =>
23+
win.navigator.serviceWorker.getRegistrations()
24+
.then(registrations =>
25+
Cypress.Promise.map(registrations, sw => sw.unregister())
26+
)
27+
28+
beforeEach(clearCaches)
29+
30+
beforeEach(() => {
31+
cy.visit('/', {
32+
onBeforeLoad: win => {
33+
neverRegisterSW(win)
34+
return unregisterWorkers(win)
35+
}
36+
})
37+
})
38+
39+
it('loads news items', () => {
40+
cy.get('.news-item').should('have.length.gt', 10)
41+
})
42+
})

0 commit comments

Comments
 (0)