From 7a17967d792221b0b38aba1cebbb83481ac4bc95 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Mon, 1 Feb 2016 21:06:33 -0800 Subject: [PATCH] Add `_.spread` tests for the `start` param. --- test/test.js | 36 ++++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/test/test.js b/test/test.js index 82f2bd0fc..14afe9cb2 100644 --- a/test/test.js +++ b/test/test.js @@ -18577,11 +18577,15 @@ QUnit.module('lodash.spread'); (function() { + function fn(a, b, c) { + return slice.call(arguments); + } + QUnit.test('should spread arguments to `func`', function(assert) { assert.expect(1); - var spread = _.spread(add); - assert.strictEqual(spread([4, 2]), 6); + var spread = _.spread(fn); + assert.deepEqual(spread([4, 2]), [4, 2]); }); QUnit.test('should accept a falsey `array` argument', function(assert) { @@ -18611,6 +18615,34 @@ spread([4, 2], 'ignored'); assert.deepEqual(args, [4, 2]); }); + + QUnit.test('should work with `start`', function(assert) { + assert.expect(1); + + var spread = _.spread(fn, 1); + assert.deepEqual(spread(1, [2, 3, 4]), [1, 2, 3, 4]); + }); + + QUnit.test('should treat `start` as `0` for negative or `NaN` values', function(assert) { + assert.expect(1); + + var values = [-1, NaN, 'a'], + expected = lodashStable.map(values, lodashStable.constant([1, 2, 3, 4])); + + var actual = lodashStable.map(values, function(value) { + var spread = _.spread(fn, value); + return spread([1, 2, 3, 4]); + }); + + assert.deepEqual(actual, expected); + }); + + QUnit.test('should coerce `start` to an integer', function(assert) { + assert.expect(1); + + var spread = _.spread(fn, 1.6); + assert.deepEqual(spread(1, [2, 3]), [1, 2, 3]); + }); }()); /*--------------------------------------------------------------------------*/