@@ -35,15 +35,19 @@ describe("index", () => {
35
35
jest . setMock ( "../../client-src/socket.js" , jest . fn ( ) ) ;
36
36
socket = require ( "../../client-src/socket" ) ;
37
37
38
+ const send = jest . fn ( ) ;
39
+
38
40
// overlay
39
41
jest . setMock ( "../../client-src/overlay.js" , {
40
- hide : jest . fn ( ) ,
41
- show : jest . fn ( ) ,
42
+ createOverlay : ( ) => { return {
43
+ send,
44
+ } } ,
42
45
formatProblem : ( item ) => {
43
46
return { header : "HEADER warning" , body : `BODY: ${ item } ` } ;
44
47
} ,
45
48
} ) ;
46
- overlay = require ( "../../client-src/overlay" ) ;
49
+ const { createOverlay } = require ( "../../client-src/overlay" ) ;
50
+ overlay = createOverlay ( ) ;
47
51
48
52
// reloadApp
49
53
jest . setMock ( "../../client-src/utils/reloadApp.js" , jest . fn ( ) ) ;
@@ -89,13 +93,13 @@ describe("index", () => {
89
93
90
94
expect ( log . log . info . mock . calls [ 0 ] [ 0 ] ) . toMatchSnapshot ( ) ;
91
95
expect ( sendMessage . mock . calls [ 0 ] [ 0 ] ) . toMatchSnapshot ( ) ;
92
- expect ( overlay . hide ) . not . toBeCalled ( ) ;
96
+ expect ( overlay . send ) . not . toBeCalledWith ( { type : "DISMISS" } ) ;
93
97
94
98
// change flags
95
99
onSocketMessage . overlay ( true ) ;
96
100
onSocketMessage [ "still-ok" ] ( ) ;
97
101
98
- expect ( overlay . hide ) . toBeCalled ( ) ;
102
+ expect ( overlay . send ) . toHaveBeenCalledWith ( { type : "DISMISS" } ) ;
99
103
} ) ;
100
104
101
105
test ( "should run onSocketMessage.progress and onSocketMessage['progress-update']" , ( ) => {
@@ -191,9 +195,14 @@ describe("index", () => {
191
195
192
196
// change flags
193
197
onSocketMessage . overlay ( { warnings : true } ) ;
194
- onSocketMessage . warnings ( [ ] ) ;
198
+ onSocketMessage . warnings ( [ "warning message" ] ) ;
195
199
196
- expect ( overlay . show ) . toBeCalled ( ) ;
200
+ expect ( overlay . send ) . toHaveBeenCalledTimes ( 1 ) ;
201
+ expect ( overlay . send ) . toHaveBeenCalledWith ( {
202
+ type : "BUILD_ERROR" ,
203
+ level : "warning" ,
204
+ messages : [ "warning message" ] ,
205
+ } ) ;
197
206
} ) ;
198
207
199
208
test ( "should parse overlay options from resource query" , ( ) => {
@@ -202,51 +211,71 @@ describe("index", () => {
202
211
global . __resourceQuery = `?overlay=${ encodeURIComponent (
203
212
`{"warnings": false}`
204
213
) } `;
205
- overlay . show . mockReset ( ) ;
214
+ overlay . send . mockReset ( ) ;
206
215
socket . mockReset ( ) ;
207
216
jest . unmock ( "../../client-src/utils/parseURL.js" ) ;
208
217
require ( "../../client-src" ) ;
209
218
onSocketMessage = socket . mock . calls [ 0 ] [ 1 ] ;
210
219
211
220
onSocketMessage . warnings ( [ "warn1" ] ) ;
212
- expect ( overlay . show ) . not . toBeCalled ( ) ;
221
+ expect ( overlay . send ) . not . toBeCalled ( ) ;
213
222
214
223
onSocketMessage . errors ( [ "error1" ] ) ;
215
- expect ( overlay . show ) . toBeCalledTimes ( 1 ) ;
224
+ expect ( overlay . send ) . toBeCalledTimes ( 1 ) ;
225
+ expect ( overlay . send ) . toHaveBeenCalledWith ( {
226
+ type : "BUILD_ERROR" ,
227
+ level : "error" ,
228
+ messages : [ "error1" ] ,
229
+ } ) ;
216
230
} ) ;
217
231
218
232
jest . isolateModules ( ( ) => {
219
233
// Pass JSON config with errors disabled
220
234
global . __resourceQuery = `?overlay=${ encodeURIComponent (
221
235
`{"errors": false}`
222
236
) } `;
223
- overlay . show . mockReset ( ) ;
237
+ overlay . send . mockReset ( ) ;
224
238
socket . mockReset ( ) ;
225
239
jest . unmock ( "../../client-src/utils/parseURL.js" ) ;
226
240
require ( "../../client-src" ) ;
227
241
onSocketMessage = socket . mock . calls [ 0 ] [ 1 ] ;
228
242
229
243
onSocketMessage . errors ( [ "error1" ] ) ;
230
- expect ( overlay . show ) . not . toBeCalled ( ) ;
244
+ expect ( overlay . send ) . not . toBeCalled ( ) ;
231
245
232
246
onSocketMessage . warnings ( [ "warn1" ] ) ;
233
- expect ( overlay . show ) . toBeCalledTimes ( 1 ) ;
247
+ expect ( overlay . send ) . toBeCalledTimes ( 1 ) ;
248
+ expect ( overlay . send ) . toHaveBeenCalledWith ( {
249
+ type : "BUILD_ERROR" ,
250
+ level : "warning" ,
251
+ messages : [ "warn1" ] ,
252
+ } ) ;
234
253
} ) ;
235
254
236
255
jest . isolateModules ( ( ) => {
237
256
// Use simple boolean
238
257
global . __resourceQuery = "?overlay=true" ;
239
258
jest . unmock ( "../../client-src/utils/parseURL.js" ) ;
240
259
socket . mockReset ( ) ;
241
- overlay . show . mockReset ( ) ;
260
+ overlay . send . mockReset ( ) ;
242
261
require ( "../../client-src" ) ;
243
262
onSocketMessage = socket . mock . calls [ 0 ] [ 1 ] ;
244
263
245
264
onSocketMessage . warnings ( [ "warn2" ] ) ;
246
- expect ( overlay . show ) . toBeCalledTimes ( 1 ) ;
265
+ expect ( overlay . send ) . toBeCalledTimes ( 1 ) ;
266
+ expect ( overlay . send ) . toHaveBeenLastCalledWith ( {
267
+ type : "BUILD_ERROR" ,
268
+ level : "warning" ,
269
+ messages : [ "warn2" ] ,
270
+ } ) ;
247
271
248
272
onSocketMessage . errors ( [ "error2" ] ) ;
249
- expect ( overlay . show ) . toBeCalledTimes ( 2 ) ;
273
+ expect ( overlay . send ) . toBeCalledTimes ( 2 ) ;
274
+ expect ( overlay . send ) . toHaveBeenLastCalledWith ( {
275
+ type : "BUILD_ERROR" ,
276
+ level : "error" ,
277
+ messages : [ "error2" ] ,
278
+ } ) ;
250
279
} ) ;
251
280
} ) ;
252
281
0 commit comments