From b578e72c8fef72d89300628ad44e4a9c48f6c2f5 Mon Sep 17 00:00:00 2001 From: Mikael Arneborn Date: Tue, 1 Mar 2016 11:23:40 -0800 Subject: [PATCH 1/2] Added failing test for done returning null --- spec/core/QueueRunnerSpec.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/spec/core/QueueRunnerSpec.js b/spec/core/QueueRunnerSpec.js index e81b811f..a53ca1e9 100644 --- a/spec/core/QueueRunnerSpec.js +++ b/spec/core/QueueRunnerSpec.js @@ -220,6 +220,22 @@ describe("QueueRunner", function() { jasmine.clock().tick(1); expect(nextQueueableFn.fn.calls.count()).toEqual(1); }); + + it("should return a null when you call done", function () { + // Bluebird promises want handlers to return anything but undefined to help catch "forgotten returns". + // http://bluebirdjs.com/docs/warning-explanations.html#warning-a-promise-was-created-in-a-handler-but-none-were-returned-from-it + // When doing ".finally(done, done.fail)" done and done.fail are hanlders so need to return null. + var doneReturn, + queueableFn = { fn: function(done) { + doneReturn = done(); + } }, + queueRunner = new jasmineUnderTest.QueueRunner({ + queueableFns: [queueableFn] + }); + + queueRunner.execute(); + expect(doneReturn).toBe(null); + }); }); it("calls exception handlers when an exception is thrown in a fn", function() { From 6cf2d94f73dbd31d253fbf52ffbbb4920d5877c2 Mon Sep 17 00:00:00 2001 From: Mikael Arneborn Date: Tue, 1 Mar 2016 11:24:15 -0800 Subject: [PATCH 2/2] The done function now returns null --- src/core/QueueRunner.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/core/QueueRunner.js b/src/core/QueueRunner.js index 3196e15b..94e647de 100644 --- a/src/core/QueueRunner.js +++ b/src/core/QueueRunner.js @@ -7,6 +7,7 @@ getJasmineRequireObj().QueueRunner = function(j$) { called = true; fn(); } + return null; }; }