@@ -42,6 +42,7 @@ describe('server', () => {
4242 browsers : [ 'fake' ] ,
4343 singleRun : true ,
4444 logLevel : 'OFF' ,
45+ plugins : [ ] ,
4546 browserDisconnectTolerance : 0
4647 }
4748
@@ -271,20 +272,92 @@ describe('server', () => {
271272 server . emit ( 'browser_register' , { } )
272273 expect ( browsersReady ) . to . have . been . called
273274 } )
275+ describe ( 'should exit with exit code' , ( ) => {
276+ let resolveExitCode
274277
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+ }
277296
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 )
280298 } )
281299
282- server . loadErrors . push ( [ 'TestError ', 'Test' ] )
283- fileListOnResolve ( )
300+ it ( 'given on run_complete ', async ( ) => {
301+ mockProcess ( process )
284302
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+ } )
288361 } )
289362 } )
290363
0 commit comments