diff --git a/lib/helpers/spread.js b/lib/helpers/spread.js index 64005df..d31dddb 100644 --- a/lib/helpers/spread.js +++ b/lib/helpers/spread.js @@ -22,6 +22,6 @@ */ module.exports = function spread(callback) { return function (arr) { - callback.apply(null, arr); + return callback.apply(null, arr); }; }; diff --git a/test/specs/helpers/spread.spec.js b/test/specs/helpers/spread.spec.js index 8f8818d..702063b 100644 --- a/test/specs/helpers/spread.spec.js +++ b/test/specs/helpers/spread.spec.js @@ -9,5 +9,13 @@ describe('helpers::spread', function () { expect(value).toEqual(50); }); + + it('should return callback result', function () { + var value = spread(function (a, b) { + return a * b; + })([5, 10]); + + expect(value).toEqual(50); + }); }); diff --git a/test/specs/promise.spec.js b/test/specs/promise.spec.js index f15d626..430ab09 100644 --- a/test/specs/promise.spec.js +++ b/test/specs/promise.spec.js @@ -84,15 +84,23 @@ describe('promise', function () { it('should support spread', function (done) { var sum = 0; var fulfilled = false; + var result; - axios.all([123, 456]).then(axios.spread(function (a, b) { - sum = a + b; - fulfilled = true; - })); + axios + .all([123, 456]) + .then(axios.spread(function (a, b) { + sum = a + b; + fulfilled = true; + return 'hello world'; + })) + .then(function (res) { + result = res; + }); setTimeout(function () { expect(fulfilled).toEqual(true); expect(sum).toEqual(123 + 456); + expect(result).toEqual('hello world'); done(); }, 0); });