File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change 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+ } )
You can’t perform that action at this time.
0 commit comments