summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Andrews <craig.andrews@bskyb.com>2014-03-28 15:43:14 +0000
committerCaolan McMahon <caolan@caolanmcmahon.com>2014-03-28 17:23:48 +0000
commiteeca6ef225fe956021c3de82e54876a5620c9fa7 (patch)
treedbd79c5ecff04f7821a2eb1133a7b6abad5798b4
parente87eacd90327869880d8cc6f26ba300554d68720 (diff)
downloadasync-eeca6ef225fe956021c3de82e54876a5620c9fa7.tar.gz
Add tests for queue idle() function
-rwxr-xr-xlib/async.js2
-rwxr-xr-xtest/test-async.js25
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];