From 9c894f9eab19945b2c4355874d63854eb1c8ede7 Mon Sep 17 00:00:00 2001 From: dignifiedquire Date: Thu, 30 Jun 2016 14:20:04 +0200 Subject: [PATCH] fix(executor): ensure run_complete is emitted last Fixes #2210 --- lib/executor.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/executor.js b/lib/executor.js index aa435fb96..a20451b1b 100644 --- a/lib/executor.js +++ b/lib/executor.js @@ -17,6 +17,7 @@ var Executor = function (capturedBrowsers, config, emitter) { if (capturedBrowsers.areAllReady(nonReady)) { log.debug('All browsers are ready, executing') + log.debug('Captured %s browsers', capturedBrowsers.length) executionScheduled = false capturedBrowsers.clearResults() capturedBrowsers.setAllToExecuting() @@ -44,7 +45,11 @@ var Executor = function (capturedBrowsers, config, emitter) { pendingCount-- if (!pendingCount) { - emitter.emit('run_complete', runningBrowsers, runningBrowsers.getResults()) + // Ensure run_complete is emitted in the next tick + // so it is never emitted before browser_complete + setTimeout(function () { + emitter.emit('run_complete', runningBrowsers, runningBrowsers.getResults()) + }, 0) } }