@@ -42,6 +42,7 @@ describe('server', () => {
42
42
browsers : [ 'fake' ] ,
43
43
singleRun : true ,
44
44
logLevel : 'OFF' ,
45
+ plugins : [ ] ,
45
46
browserDisconnectTolerance : 0
46
47
}
47
48
@@ -271,20 +272,92 @@ describe('server', () => {
271
272
server . emit ( 'browser_register' , { } )
272
273
expect ( browsersReady ) . to . have . been . called
273
274
} )
275
+ describe ( 'should exit with exit code' , ( ) => {
276
+ let resolveExitCode
274
277
275
- it ( 'should exit with error exit code on load errors' , async ( ) => {
276
- mockProcess ( process )
278
+ async function exitCode ( ) {
279
+ return new Promise ( ( resolve ) => {
280
+ resolveExitCode = resolve
281
+ } )
282
+ }
283
+
284
+ it ( '1 on load errors' , async ( ) => {
285
+ mockProcess ( process )
286
+
287
+ await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
288
+ resolveExitCode ( exitCode )
289
+ } )
290
+ server . loadErrors . push ( [ 'TestError' , 'Test' ] )
291
+ fileListOnResolve ( )
292
+
293
+ function mockProcess ( process ) {
294
+ sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
295
+ }
277
296
278
- await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
279
- expect ( exitCode ) . to . have . equal ( 1 )
297
+ expect ( await exitCode ( ) ) . to . have . equal ( 1 )
280
298
} )
281
299
282
- server . loadErrors . push ( [ 'TestError ', 'Test' ] )
283
- fileListOnResolve ( )
300
+ it ( 'given on run_complete ', async ( ) => {
301
+ mockProcess ( process )
284
302
285
- function mockProcess ( process ) {
286
- sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
287
- }
303
+ await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
304
+ resolveExitCode ( exitCode )
305
+ } )
306
+
307
+ server . emit ( 'run_complete' , browserCollection , { exitCode : 15 } )
308
+
309
+ function mockProcess ( process ) {
310
+ sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
311
+ }
312
+ expect ( await exitCode ( ) ) . to . have . equal ( 15 )
313
+ } )
314
+
315
+ it ( '1 on browser_process_failure (singleRunBrowserNotCaptured)' , async ( ) => {
316
+ mockProcess ( process )
317
+
318
+ await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
319
+ resolveExitCode ( exitCode )
320
+ } )
321
+
322
+ server . emit ( 'browser_process_failure' , { id : 'fake' } )
323
+
324
+ function mockProcess ( process ) {
325
+ sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
326
+ }
327
+ expect ( await exitCode ( ) ) . to . have . equal ( 1 )
328
+ } )
329
+
330
+ it ( '0 on browser_complete_with_no_more_retries' , async ( ) => {
331
+ mockProcess ( process )
332
+
333
+ await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
334
+ resolveExitCode ( exitCode )
335
+ } )
336
+
337
+ server . emit ( 'browser_complete_with_no_more_retries' , { id : 'fake' } )
338
+
339
+ function mockProcess ( process ) {
340
+ sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
341
+ }
342
+ expect ( await exitCode ( ) ) . to . have . equal ( 0 )
343
+ } )
344
+
345
+ it ( '1 on browser_complete_with_no_more_retries with config.failOnEmptyTestSuite' , async ( ) => {
346
+ mockProcess ( process )
347
+
348
+ mockConfig . failOnEmptyTestSuite = true
349
+
350
+ await server . _start ( mockConfig , mockLauncher , null , mockFileList , browserCollection , mockExecutor , ( exitCode ) => {
351
+ resolveExitCode ( exitCode )
352
+ } )
353
+
354
+ server . emit ( 'browser_complete_with_no_more_retries' , { id : 'fake' } )
355
+
356
+ function mockProcess ( process ) {
357
+ sinon . stub ( process , 'kill' ) . callsFake ( ( pid , ev ) => process . emit ( ev ) )
358
+ }
359
+ expect ( await exitCode ( ) ) . to . have . equal ( 1 )
360
+ } )
288
361
} )
289
362
} )
290
363
0 commit comments