mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-09 18:37:50 +00:00
Rearrange tests.
This commit is contained in:
402
test/test.js
402
test/test.js
@@ -18467,25 +18467,6 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.update');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
QUnit.test('should call `func` with existing value on `path` of `object` and update it', function(assert) {
|
|
||||||
assert.expect(2);
|
|
||||||
|
|
||||||
var object = { 'a': [{ 'b': { 'c': 10 } }] };
|
|
||||||
|
|
||||||
_.update(object, ['a', 0, 'b', 'c'], function(value) {
|
|
||||||
assert.equal(value, 10);
|
|
||||||
return 20;
|
|
||||||
});
|
|
||||||
|
|
||||||
assert.equal(object.a[0].b.c, 20);
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('set methods');
|
QUnit.module('set methods');
|
||||||
|
|
||||||
lodashStable.each(['set', 'setWith'], function(methodName) {
|
lodashStable.each(['set', 'setWith'], function(methodName) {
|
||||||
@@ -22534,6 +22515,30 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.unary');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
function fn() {
|
||||||
|
return slice.call(arguments);
|
||||||
|
}
|
||||||
|
|
||||||
|
QUnit.test('should cap the number of arguments provided to `func`', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var actual = lodashStable.map(['6', '8', '10'], _.unary(parseInt));
|
||||||
|
assert.deepEqual(actual, [6, 8, 10]);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('should work when provided less than the capped number of arguments', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var capped = _.unary(fn);
|
||||||
|
assert.deepEqual(capped(), []);
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.unescape');
|
QUnit.module('lodash.unescape');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -22576,90 +22581,6 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.upperCase');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
QUnit.test('should uppercase as space-separated words', function(assert) {
|
|
||||||
assert.expect(3);
|
|
||||||
|
|
||||||
assert.strictEqual(_.upperCase('--foo-bar'), 'FOO BAR');
|
|
||||||
assert.strictEqual(_.upperCase('fooBar'), 'FOO BAR');
|
|
||||||
assert.strictEqual(_.upperCase('__foo_bar__'), 'FOO BAR');
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('lodash.upperFirst');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
QUnit.test('should uppercase only the first character', function(assert) {
|
|
||||||
assert.expect(3);
|
|
||||||
|
|
||||||
assert.strictEqual(_.upperFirst('fred'), 'Fred');
|
|
||||||
assert.strictEqual(_.upperFirst('Fred'), 'Fred');
|
|
||||||
assert.strictEqual(_.upperFirst('FRED'), 'FRED');
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('lodash.unary');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
function fn() {
|
|
||||||
return slice.call(arguments);
|
|
||||||
}
|
|
||||||
|
|
||||||
QUnit.test('should cap the number of arguments provided to `func`', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var actual = lodashStable.map(['6', '8', '10'], _.unary(parseInt));
|
|
||||||
assert.deepEqual(actual, [6, 8, 10]);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('should work when provided less than the capped number of arguments', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var capped = _.unary(fn);
|
|
||||||
assert.deepEqual(capped(), []);
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('union methods');
|
|
||||||
|
|
||||||
lodashStable.each(['union', 'unionBy', 'unionWith'], function(methodName) {
|
|
||||||
var args = (function() { return arguments; }(1, 2, 3)),
|
|
||||||
func = _[methodName];
|
|
||||||
|
|
||||||
QUnit.test('`_.' + methodName + '` should return the union of the given arrays', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var actual = func([1, 3, 2], [5, 2, 1, 4], [2, 1]);
|
|
||||||
assert.deepEqual(actual, [1, 3, 2, 5, 4]);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('`_.' + methodName + '` should not flatten nested arrays', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var actual = func([1, 3, 2], [1, [5]], [2, [4]]);
|
|
||||||
assert.deepEqual(actual, [1, 3, 2, [5], [4]]);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('`_.' + methodName + '` should ignore values that are not arrays or `arguments` objects', function(assert) {
|
|
||||||
assert.expect(3);
|
|
||||||
|
|
||||||
var array = [0];
|
|
||||||
assert.deepEqual(func(array, 3, { '0': 1 }, null), array);
|
|
||||||
assert.deepEqual(func(null, array, null, [2, 1]), [0, 2, 1]);
|
|
||||||
assert.deepEqual(func(array, null, args, null), [0, 1, 2, 3]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('lodash.unionBy');
|
QUnit.module('lodash.unionBy');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -22705,6 +22626,38 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('union methods');
|
||||||
|
|
||||||
|
lodashStable.each(['union', 'unionBy', 'unionWith'], function(methodName) {
|
||||||
|
var args = (function() { return arguments; }(1, 2, 3)),
|
||||||
|
func = _[methodName];
|
||||||
|
|
||||||
|
QUnit.test('`_.' + methodName + '` should return the union of the given arrays', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var actual = func([1, 3, 2], [5, 2, 1, 4], [2, 1]);
|
||||||
|
assert.deepEqual(actual, [1, 3, 2, 5, 4]);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('`_.' + methodName + '` should not flatten nested arrays', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var actual = func([1, 3, 2], [1, [5]], [2, [4]]);
|
||||||
|
assert.deepEqual(actual, [1, 3, 2, [5], [4]]);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('`_.' + methodName + '` should ignore values that are not arrays or `arguments` objects', function(assert) {
|
||||||
|
assert.expect(3);
|
||||||
|
|
||||||
|
var array = [0];
|
||||||
|
assert.deepEqual(func(array, 3, { '0': 1 }, null), array);
|
||||||
|
assert.deepEqual(func(null, array, null, [2, 1]), [0, 2, 1]);
|
||||||
|
assert.deepEqual(func(array, null, args, null), [0, 1, 2, 3]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('lodash.uniq');
|
QUnit.module('lodash.uniq');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -22720,6 +22673,104 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('uniqBy methods');
|
||||||
|
|
||||||
|
lodashStable.each(['uniqBy', 'sortedUniqBy'], function(methodName) {
|
||||||
|
var func = _[methodName],
|
||||||
|
isSorted = methodName == 'sortedUniqBy',
|
||||||
|
objects = [{ 'a': 2 }, { 'a': 3 }, { 'a': 1 }, { 'a': 2 }, { 'a': 3 }, { 'a': 1 }];
|
||||||
|
|
||||||
|
if (isSorted) {
|
||||||
|
objects = _.sortBy(objects, 'a');
|
||||||
|
}
|
||||||
|
QUnit.test('`_.' + methodName + '` should work with an `iteratee` argument', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3);
|
||||||
|
|
||||||
|
var actual = func(objects, function(object) {
|
||||||
|
return object.a;
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.deepEqual(actual, expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('should work with large arrays', function(assert) {
|
||||||
|
assert.expect(2);
|
||||||
|
|
||||||
|
var largeArray = lodashStable.times(LARGE_ARRAY_SIZE, function() {
|
||||||
|
return [1, 2];
|
||||||
|
});
|
||||||
|
|
||||||
|
var actual = func(largeArray, String);
|
||||||
|
|
||||||
|
assert.deepEqual(actual, [[1, 2]]);
|
||||||
|
assert.strictEqual(actual[0], largeArray[0]);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('`_.' + methodName + '` should provide the correct `iteratee` arguments', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var args;
|
||||||
|
|
||||||
|
func(objects, function() {
|
||||||
|
args || (args = slice.call(arguments));
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.deepEqual(args, [objects[0]]);
|
||||||
|
});
|
||||||
|
|
||||||
|
QUnit.test('`_.' + methodName + '` should work with "_.property" shorthands', function(assert) {
|
||||||
|
assert.expect(2);
|
||||||
|
|
||||||
|
var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3),
|
||||||
|
actual = func(objects, 'a');
|
||||||
|
|
||||||
|
assert.deepEqual(actual, expected);
|
||||||
|
|
||||||
|
var arrays = [[2], [3], [1], [2], [3], [1]];
|
||||||
|
if (isSorted) {
|
||||||
|
arrays = lodashStable.sortBy(arrays, 0);
|
||||||
|
}
|
||||||
|
expected = isSorted ? [[1], [2], [3]] : arrays.slice(0, 3);
|
||||||
|
actual = func(arrays, 0);
|
||||||
|
|
||||||
|
assert.deepEqual(actual, expected);
|
||||||
|
});
|
||||||
|
|
||||||
|
lodashStable.each({
|
||||||
|
'an array': [0, 'a'],
|
||||||
|
'an object': { '0': 'a' },
|
||||||
|
'a number': 0,
|
||||||
|
'a string': '0'
|
||||||
|
},
|
||||||
|
function(iteratee, key) {
|
||||||
|
QUnit.test('`_.' + methodName + '` should work with ' + key + ' for `iteratee`', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var actual = func([['a'], ['a'], ['b']], iteratee);
|
||||||
|
assert.deepEqual(actual, [['a'], ['b']]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.uniqWith');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
|
||||||
|
|
||||||
|
QUnit.test('should work with a `comparator` argument', function(assert) {
|
||||||
|
assert.expect(1);
|
||||||
|
|
||||||
|
var actual = _.uniqWith(objects, lodashStable.isEqual);
|
||||||
|
assert.deepEqual(actual, [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]);
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('uniq methods');
|
QUnit.module('uniq methods');
|
||||||
|
|
||||||
lodashStable.each(['uniq', 'uniqBy', 'uniqWith', 'sortedUniq', 'sortedUniqBy'], function(methodName) {
|
lodashStable.each(['uniq', 'uniqBy', 'uniqWith', 'sortedUniq', 'sortedUniqBy'], function(methodName) {
|
||||||
@@ -22851,104 +22902,6 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('uniqBy methods');
|
|
||||||
|
|
||||||
lodashStable.each(['uniqBy', 'sortedUniqBy'], function(methodName) {
|
|
||||||
var func = _[methodName],
|
|
||||||
isSorted = methodName == 'sortedUniqBy',
|
|
||||||
objects = [{ 'a': 2 }, { 'a': 3 }, { 'a': 1 }, { 'a': 2 }, { 'a': 3 }, { 'a': 1 }];
|
|
||||||
|
|
||||||
if (isSorted) {
|
|
||||||
objects = _.sortBy(objects, 'a');
|
|
||||||
}
|
|
||||||
QUnit.test('`_.' + methodName + '` should work with an `iteratee` argument', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3);
|
|
||||||
|
|
||||||
var actual = func(objects, function(object) {
|
|
||||||
return object.a;
|
|
||||||
});
|
|
||||||
|
|
||||||
assert.deepEqual(actual, expected);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('should work with large arrays', function(assert) {
|
|
||||||
assert.expect(2);
|
|
||||||
|
|
||||||
var largeArray = lodashStable.times(LARGE_ARRAY_SIZE, function() {
|
|
||||||
return [1, 2];
|
|
||||||
});
|
|
||||||
|
|
||||||
var actual = func(largeArray, String);
|
|
||||||
|
|
||||||
assert.deepEqual(actual, [[1, 2]]);
|
|
||||||
assert.strictEqual(actual[0], largeArray[0]);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('`_.' + methodName + '` should provide the correct `iteratee` arguments', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var args;
|
|
||||||
|
|
||||||
func(objects, function() {
|
|
||||||
args || (args = slice.call(arguments));
|
|
||||||
});
|
|
||||||
|
|
||||||
assert.deepEqual(args, [objects[0]]);
|
|
||||||
});
|
|
||||||
|
|
||||||
QUnit.test('`_.' + methodName + '` should work with "_.property" shorthands', function(assert) {
|
|
||||||
assert.expect(2);
|
|
||||||
|
|
||||||
var expected = isSorted ? [{ 'a': 1 }, { 'a': 2 }, { 'a': 3 }] : objects.slice(0, 3),
|
|
||||||
actual = func(objects, 'a');
|
|
||||||
|
|
||||||
assert.deepEqual(actual, expected);
|
|
||||||
|
|
||||||
var arrays = [[2], [3], [1], [2], [3], [1]];
|
|
||||||
if (isSorted) {
|
|
||||||
arrays = lodashStable.sortBy(arrays, 0);
|
|
||||||
}
|
|
||||||
expected = isSorted ? [[1], [2], [3]] : arrays.slice(0, 3);
|
|
||||||
actual = func(arrays, 0);
|
|
||||||
|
|
||||||
assert.deepEqual(actual, expected);
|
|
||||||
});
|
|
||||||
|
|
||||||
lodashStable.each({
|
|
||||||
'an array': [0, 'a'],
|
|
||||||
'an object': { '0': 'a' },
|
|
||||||
'a number': 0,
|
|
||||||
'a string': '0'
|
|
||||||
},
|
|
||||||
function(iteratee, key) {
|
|
||||||
QUnit.test('`_.' + methodName + '` should work with ' + key + ' for `iteratee`', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var actual = func([['a'], ['a'], ['b']], iteratee);
|
|
||||||
assert.deepEqual(actual, [['a'], ['b']]);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('lodash.uniqWith');
|
|
||||||
|
|
||||||
(function() {
|
|
||||||
var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];
|
|
||||||
|
|
||||||
QUnit.test('should work with a `comparator` argument', function(assert) {
|
|
||||||
assert.expect(1);
|
|
||||||
|
|
||||||
var actual = _.uniqWith(objects, lodashStable.isEqual);
|
|
||||||
assert.deepEqual(actual, [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]);
|
|
||||||
});
|
|
||||||
}());
|
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
QUnit.module('lodash.uniqueId');
|
QUnit.module('lodash.uniqueId');
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
@@ -23138,6 +23091,53 @@
|
|||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.update');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
QUnit.test('should call `func` with existing value on `path` of `object` and update it', function(assert) {
|
||||||
|
assert.expect(2);
|
||||||
|
|
||||||
|
var object = { 'a': [{ 'b': { 'c': 10 } }] };
|
||||||
|
|
||||||
|
_.update(object, ['a', 0, 'b', 'c'], function(value) {
|
||||||
|
assert.equal(value, 10);
|
||||||
|
return 20;
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.equal(object.a[0].b.c, 20);
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.upperCase');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
QUnit.test('should uppercase as space-separated words', function(assert) {
|
||||||
|
assert.expect(3);
|
||||||
|
|
||||||
|
assert.strictEqual(_.upperCase('--foo-bar'), 'FOO BAR');
|
||||||
|
assert.strictEqual(_.upperCase('fooBar'), 'FOO BAR');
|
||||||
|
assert.strictEqual(_.upperCase('__foo_bar__'), 'FOO BAR');
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
|
QUnit.module('lodash.upperFirst');
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
QUnit.test('should uppercase only the first character', function(assert) {
|
||||||
|
assert.expect(3);
|
||||||
|
|
||||||
|
assert.strictEqual(_.upperFirst('fred'), 'Fred');
|
||||||
|
assert.strictEqual(_.upperFirst('Fred'), 'Fred');
|
||||||
|
assert.strictEqual(_.upperFirst('FRED'), 'FRED');
|
||||||
|
});
|
||||||
|
}());
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|
||||||
QUnit.module('values methods');
|
QUnit.module('values methods');
|
||||||
|
|
||||||
lodashStable.each(['values', 'valuesIn'], function(methodName) {
|
lodashStable.each(['values', 'valuesIn'], function(methodName) {
|
||||||
|
|||||||
Reference in New Issue
Block a user