@@ -8,56 +8,70 @@ describe('service workers', () => {
8
8
9
9
describe ( 'a service worker that handles requests' , ( ) => {
10
10
it ( 'supports using addEventListener with function' , ( ) => {
11
+ const script = ( ) => {
12
+ self . addEventListener ( 'fetch' , function ( event ) {
13
+ event . respondWith ( fetch ( event . request ) )
14
+ } )
15
+ }
16
+
11
17
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
12
- req . reply ( `
13
- self.addEventListener('fetch', function (event) {
14
- event.respondWith(fetch(event.request))
15
- })` ,
16
- { 'Content-Type' : 'application/javascript' } )
18
+ req . reply ( `(${ script } )()` ,
19
+ { 'Content-Type' : 'application/javascript' } )
17
20
} )
18
21
19
22
cy . visit ( 'fixtures/service-worker.html' )
20
23
cy . get ( '#output' ) . should ( 'have.text' , 'done' )
21
24
} )
22
25
23
26
it ( 'supports using addEventListener with object' , ( ) => {
27
+ const script = ( ) => {
28
+ const obj = {
29
+ handleEvent ( event ) {
30
+ event . respondWith ( fetch ( event . request ) )
31
+ } ,
32
+ }
33
+
34
+ self . addEventListener ( 'fetch' , obj )
35
+ }
36
+
24
37
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
25
- req . reply ( `
26
- const obj = {
27
- handleEvent: function (event) {
28
- event.respondWith(fetch(event.request))
29
- }
30
- }
31
- self.addEventListener('fetch', obj)` ,
32
- { 'Content-Type' : 'application/javascript' } )
38
+ req . reply ( `(${ script } )()` ,
39
+ { 'Content-Type' : 'application/javascript' } )
33
40
} )
34
41
35
42
cy . visit ( 'fixtures/service-worker.html' )
36
43
cy . get ( '#output' ) . should ( 'have.text' , 'done' )
37
44
} )
38
45
39
46
it ( 'supports using addEventListener with delayed handleEvent' , ( ) => {
47
+ const script = ( ) => {
48
+ const obj = { }
49
+
50
+ self . addEventListener ( 'fetch' , obj )
51
+ obj . handleEvent = function ( event ) {
52
+ event . respondWith ( fetch ( event . request ) )
53
+ }
54
+ }
55
+
40
56
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
41
- req . reply ( `
42
- const obj = {}
43
- self.addEventListener('fetch', obj)
44
- obj.handleEvent = function (event) {
45
- event.respondWith(fetch(event.request))
46
- }` ,
47
- { 'Content-Type' : 'application/javascript' } )
57
+ req . reply ( `(${ script } )()` ,
58
+ { 'Content-Type' : 'application/javascript' } )
48
59
} )
49
60
50
61
cy . visit ( 'fixtures/service-worker.html' )
51
62
cy . get ( '#output' ) . should ( 'have.text' , 'done' )
52
63
} )
53
64
54
65
it ( 'supports using onfetch' , ( ) => {
66
+ const script = ( ) => {
67
+ self . onfetch = function ( event ) {
68
+ event . respondWith ( fetch ( event . request ) )
69
+ }
70
+ }
71
+
55
72
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
56
- req . reply ( `
57
- self.onfetch = function (event) {
58
- event.respondWith(fetch(event.request))
59
- }` ,
60
- { 'Content-Type' : 'application/javascript' } )
73
+ req . reply ( `(${ script } )()` ,
74
+ { 'Content-Type' : 'application/javascript' } )
61
75
} )
62
76
63
77
cy . visit ( 'fixtures/service-worker.html' )
@@ -67,25 +81,31 @@ describe('service workers', () => {
67
81
68
82
describe ( 'a service worker that does not handle requests' , ( ) => {
69
83
it ( 'supports using addEventListener' , ( ) => {
84
+ const script = ( ) => {
85
+ self . addEventListener ( 'fetch' , function ( event ) {
86
+ return
87
+ } )
88
+ }
89
+
70
90
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
71
- req . reply ( `
72
- self.addEventListener('fetch', function (event) {
73
- return
74
- })` ,
75
- { 'Content-Type' : 'application/javascript' } )
91
+ req . reply ( `(${ script } )()` ,
92
+ { 'Content-Type' : 'application/javascript' } )
76
93
} )
77
94
78
95
cy . visit ( 'fixtures/service-worker.html' )
79
96
cy . get ( '#output' ) . should ( 'have.text' , 'done' )
80
97
} )
81
98
82
99
it ( 'supports using onfetch' , ( ) => {
100
+ const script = ( ) => {
101
+ self . onfetch = function ( event ) {
102
+ return
103
+ }
104
+ }
105
+
83
106
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
84
- req . reply ( `
85
- self.onfetch = function (event) {
86
- return
87
- }` ,
88
- { 'Content-Type' : 'application/javascript' } )
107
+ req . reply ( `(${ script } )()` ,
108
+ { 'Content-Type' : 'application/javascript' } )
89
109
} )
90
110
91
111
cy . visit ( 'fixtures/service-worker.html' )
@@ -95,40 +115,50 @@ describe('service workers', () => {
95
115
96
116
describe ( 'a service worker that removes fetch handlers' , ( ) => {
97
117
it ( 'supports using addEventListener' , ( ) => {
118
+ const script = ( ) => {
119
+ const handler = function ( event ) {
120
+ return new Response ( 'Network error' , {
121
+ status : 400 ,
122
+ headers : { 'Content-Type' : 'text/plain' } ,
123
+ } )
124
+ }
125
+
126
+ self . addEventListener ( 'fetch' , handler )
127
+ self . removeEventListener ( 'fetch' , handler )
128
+
129
+ self . addEventListener ( 'fetch' , function ( event ) {
130
+ return
131
+ } )
132
+ }
133
+
98
134
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
99
- req . reply ( `
100
- const handler = function (event) {
101
- return new Response('Network error', {
102
- status: 400,
103
- headers: { 'Content-Type': 'text/plain' },
104
- })
105
- }
106
-
107
- self.addEventListener('fetch', handler)
108
- self.removeEventListener('fetch', handler)
109
-
110
- self.addEventListener('fetch', function (event) {
111
- return
112
- })` ,
113
- { 'Content-Type' : 'application/javascript' } )
135
+ req . reply ( `(${ script } )()` ,
136
+ { 'Content-Type' : 'application/javascript' } )
114
137
} )
115
138
116
139
cy . visit ( 'fixtures/service-worker.html' )
117
140
cy . get ( '#output' ) . should ( 'have.text' , 'done' )
118
141
} )
119
142
120
143
it ( 'supports using onfetch' , ( ) => {
144
+ const script = ( ) => {
145
+ self . onfetch = function ( event ) {
146
+ return new Response ( 'Network error' , {
147
+ status : 400 ,
148
+ headers : { 'Content-Type' : 'text/plain' } ,
149
+ } )
150
+ }
151
+
152
+ self . onfetch = undefined
153
+
154
+ self . onfetch = function ( event ) {
155
+ return
156
+ }
157
+ }
158
+
121
159
cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
122
- req . reply ( `
123
- self.onfetch = function (event) {
124
- event.respondWith(fetch(event.request))
125
- }
126
- self.onfetch = undefined
127
-
128
- self.onfetch = function (event) {
129
- event.respondWith(fetch(event.request))
130
- }` ,
131
- { 'Content-Type' : 'application/javascript' } )
160
+ req . reply ( `(${ script } )()` ,
161
+ { 'Content-Type' : 'application/javascript' } )
132
162
} )
133
163
134
164
cy . visit ( 'fixtures/service-worker.html' )
@@ -138,16 +168,19 @@ describe('service workers', () => {
138
168
139
169
describe ( 'a service worker with multiple fetch handlers' , ( ) => {
140
170
it ( 'supports using addEventListener and onfetch' , ( ) => {
141
- cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
142
- req . reply ( `
143
- self.addEventListener('fetch', function (event) {
144
- event.respondWith(fetch(event.request))
145
- })
171
+ const script = ( ) => {
172
+ self . addEventListener ( 'fetch' , function ( event ) {
173
+ event . respondWith ( fetch ( event . request ) )
174
+ } )
146
175
147
- self.onfetch = function (event) {
148
- event.respondWith(fetch(event.request))
149
- }` ,
150
- { 'Content-Type' : 'application/javascript' } )
176
+ self . onfetch = function ( event ) {
177
+ event . respondWith ( fetch ( event . request ) )
178
+ }
179
+ }
180
+
181
+ cy . intercept ( '/fixtures/service-worker.js' , ( req ) => {
182
+ req . reply ( `(${ script } )()` ,
183
+ { 'Content-Type' : 'application/javascript' } )
151
184
} )
152
185
153
186
cy . visit ( 'fixtures/service-worker.html' )
0 commit comments