Skip to content

Commit 890382d

Browse files
author
James Halliday
committed
refactor exit logic
1 parent f37d431 commit 890382d

File tree

1 file changed

+30
-28
lines changed

1 file changed

+30
-28
lines changed

index.js

Lines changed: 30 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,38 +17,40 @@ var nextTick = typeof setImmediate !== 'undefined'
1717
exports = module.exports = (function () {
1818
var harness;
1919
return function () {
20-
if (!harness) {
21-
harness = createHarness();
22-
var stream = harness.createStream();
23-
stream.pipe(createDefaultStream());
24-
25-
var ended = false;
26-
stream.on('end', function () { ended = true });
27-
28-
if (process.exit && process._getActiveHandles) {
29-
var iv = setInterval(function () {
30-
if (process._getActiveHandles().length > 1) return;
31-
32-
clearInterval(iv);
33-
setTimeout(function () {
34-
if (!ended) {
35-
for (var i = 0; i < harness._tests.length; i++) {
36-
var t = harness._tests[i];
37-
t._exit();
38-
}
39-
}
40-
}, 100);
41-
42-
setTimeout(function () {
43-
process.exit(harness._exitCode);
44-
}, 110);
45-
});
46-
}
47-
}
20+
if (!harness) harness = createExitHarness();
4821
return harness.apply(this, arguments);
4922
};
5023
})();
5124

25+
function createExitHarness () {
26+
var harness = createHarness();
27+
var stream = harness.createStream();
28+
stream.pipe(createDefaultStream());
29+
30+
var ended = false;
31+
stream.on('end', function () { ended = true });
32+
33+
if (process.exit && process._getActiveHandles) {
34+
var iv = setInterval(function () {
35+
if (process._getActiveHandles().length > 1) return;
36+
37+
clearInterval(iv);
38+
setTimeout(function () {
39+
if (ended) return;
40+
for (var i = 0; i < harness._tests.length; i++) {
41+
var t = harness._tests[i];
42+
t._exit();
43+
}
44+
}, 100);
45+
46+
setTimeout(function () {
47+
process.exit(harness._exitCode);
48+
}, 105);
49+
});
50+
}
51+
return harness;
52+
}
53+
5254
exports.createHarness = createHarness;
5355
exports.Test = Test;
5456
exports.test = exports; // tap compat

0 commit comments

Comments
 (0)