mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-10 19:07:49 +00:00
Add _.isEqualWith and _.isMatchWith tests for maps and sets.
This commit is contained in:
90
test/test.js
90
test/test.js
@@ -7103,6 +7103,50 @@
|
|||||||
|
|
||||||
deepEqual(actual, [true, false]);
|
deepEqual(actual, [true, false]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should call `customizer` for values maps and sets', 2, function() {
|
||||||
|
var value = { 'a': { 'b': 2 } };
|
||||||
|
|
||||||
|
if (Map) {
|
||||||
|
var map1 = new Map;
|
||||||
|
map1.set('a', value);
|
||||||
|
|
||||||
|
var map2 = new Map;
|
||||||
|
map2.set('a', value);
|
||||||
|
}
|
||||||
|
if (Set) {
|
||||||
|
var set1 = new Set;
|
||||||
|
set1.add(value);
|
||||||
|
|
||||||
|
var set2 = new Set;
|
||||||
|
set2.add(value);
|
||||||
|
}
|
||||||
|
_.each([[map1, map2], [set1, set2]], function(pair, index) {
|
||||||
|
if (pair[0]) {
|
||||||
|
var argsList = [],
|
||||||
|
array = _.toArray(pair[0]);
|
||||||
|
|
||||||
|
var expected = [
|
||||||
|
[pair[0], pair[1]],
|
||||||
|
[array[0], array[0], 0, array, array, [], []],
|
||||||
|
[array[0][0], array[0][0], 0, array[0], array[0], [], []],
|
||||||
|
[array[0][1], array[0][1], 1, array[0], array[0], [], []]
|
||||||
|
];
|
||||||
|
|
||||||
|
if (index) {
|
||||||
|
expected.length = 2;
|
||||||
|
}
|
||||||
|
_.isEqualWith(pair[0], pair[1], function() {
|
||||||
|
argsList.push(slice.call(arguments));
|
||||||
|
});
|
||||||
|
|
||||||
|
deepEqual(argsList, expected, index ? 'Set' : 'Map');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skipTest();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}());
|
}());
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
@@ -7664,6 +7708,52 @@
|
|||||||
|
|
||||||
deepEqual(actual, [true, false]);
|
deepEqual(actual, [true, false]);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should call `customizer` for values maps and sets', 2, function() {
|
||||||
|
var value = { 'a': { 'b': 2 } };
|
||||||
|
|
||||||
|
if (Map) {
|
||||||
|
var map1 = new Map;
|
||||||
|
map1.set('a', value);
|
||||||
|
|
||||||
|
var map2 = new Map;
|
||||||
|
map2.set('a', value);
|
||||||
|
}
|
||||||
|
if (Set) {
|
||||||
|
var set1 = new Set;
|
||||||
|
set1.add(value);
|
||||||
|
|
||||||
|
var set2 = new Set;
|
||||||
|
set2.add(value);
|
||||||
|
}
|
||||||
|
_.each([[map1, map2], [set1, set2]], function(pair, index) {
|
||||||
|
if (pair[0]) {
|
||||||
|
var argsList = [],
|
||||||
|
array = _.toArray(pair[0]),
|
||||||
|
object1 = { 'a': pair[0] },
|
||||||
|
object2 = { 'a': pair[1] };
|
||||||
|
|
||||||
|
var expected = [
|
||||||
|
[pair[0], pair[1], 'a', object1, object2, [], []],
|
||||||
|
[array[0], array[0], 0, array, array, [], []],
|
||||||
|
[array[0][0], array[0][0], 0, array[0], array[0], [], []],
|
||||||
|
[array[0][1], array[0][1], 1, array[0], array[0], [], []]
|
||||||
|
];
|
||||||
|
|
||||||
|
if (index) {
|
||||||
|
expected.length = 2;
|
||||||
|
}
|
||||||
|
_.isMatchWith({ 'a': pair[0] }, { 'a': pair[1] }, function() {
|
||||||
|
argsList.push(slice.call(arguments));
|
||||||
|
});
|
||||||
|
|
||||||
|
deepEqual(argsList, expected, index ? 'Set' : 'Map');
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
skipTest();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
}());
|
}());
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
/*--------------------------------------------------------------------------*/
|
||||||
|
|||||||
Reference in New Issue
Block a user