diff options
author | Craig Andrews <craig.andrews@bskyb.com> | 2014-03-28 15:43:14 +0000 |
---|---|---|
committer | Caolan McMahon <caolan@caolanmcmahon.com> | 2014-03-28 17:23:48 +0000 |
commit | eeca6ef225fe956021c3de82e54876a5620c9fa7 (patch) | |
tree | dbd79c5ecff04f7821a2eb1133a7b6abad5798b4 | |
parent | e87eacd90327869880d8cc6f26ba300554d68720 (diff) | |
download | async-eeca6ef225fe956021c3de82e54876a5620c9fa7.tar.gz |
Add tests for queue idle() function
-rwxr-xr-x | lib/async.js | 2 | ||||
-rwxr-xr-x | test/test-async.js | 25 |
2 files changed, 26 insertions, 1 deletions
diff --git a/lib/async.js b/lib/async.js index 2313bb1..64398b9 100755 --- a/lib/async.js +++ b/lib/async.js @@ -757,7 +757,7 @@ return workers; }, idle: function() { - return q.tasks.length == 0 && workers == 0; + return q.tasks.length + workers === 0; } }; return q; diff --git a/test/test-async.js b/test/test-async.js index b21b04f..f7eca6d 100755 --- a/test/test-async.js +++ b/test/test-async.js @@ -2250,6 +2250,31 @@ exports['queue bulk task'] = function (test) { }, 800); }; +exports['queue idle'] = function(test) { + var q = async.queue(function (task, callback) { + // Queue is busy when workers are running + test.equal(q.idle(), false) + callback(); + }, 1); + + // Queue is idle before anything added + test.equal(q.idle(), true) + + q.unshift(4); + q.unshift(3); + q.unshift(2); + q.unshift(1); + + // Queue is busy when tasks added + test.equal(q.idle(), false) + + q.drain = function() { + // Queue is idle after drain + test.equal(q.idle(), true); + test.done(); + } +} + exports['cargo'] = function (test) { var call_order = [], delays = [160, 160, 80]; |