From eeca6ef225fe956021c3de82e54876a5620c9fa7 Mon Sep 17 00:00:00 2001 From: Craig Andrews Date: Fri, 28 Mar 2014 15:43:14 +0000 Subject: Add tests for queue idle() function --- lib/async.js | 2 +- test/test-async.js | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) 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]; -- cgit v1.2.1