From aa8524b8adaacdc478d94cb9d154495bac5f0804 Mon Sep 17 00:00:00 2001 From: John-David Dalton Date: Sun, 22 Nov 2015 20:31:02 -0800 Subject: [PATCH] Add `_.flatMap` chain sequence test. --- test/test.js | 32 ++++++++++++++++++++++++++++---- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/test/test.js b/test/test.js index 839e272f1..124cd63d8 100644 --- a/test/test.js +++ b/test/test.js @@ -5044,14 +5044,38 @@ QUnit.module('lodash.flatMap'); (function() { + var array = [1, 2, 3, 4]; + + function duplicate(n) { + return [n, n]; + } + QUnit.test('should map values in `array` to a new flattened array', function(assert) { assert.expect(1); - var actual = _.flatMap([1, 2], function(n) { - return [n, n]; - }); + var actual = _.flatMap(array, duplicate), + expected = lodashStable.flatten(lodashStable.map(array, duplicate)); - assert.deepEqual(actual, [1, 1, 2, 2]); + assert.deepEqual(actual, expected); + }); + + QUnit.test('should work in a lazy sequence', function(assert) { + assert.expect(2); + + if (!isNpm) { + var largeArray = lodashStable.range(LARGE_ARRAY_SIZE), + smallArray = array; + + lodashStable.times(2, function(index) { + var array = index ? largeArray : smallArray, + actual = _(array).filter(isEven).flatMap(duplicate).take(2).value(); + + assert.deepEqual(actual, _.take(_.flatMap(_.filter(array, isEven), duplicate), 2)); + }); + } + else { + skipTest(assert, 2); + } }); }());