Add _.conj and _.disj test for early exits.

This commit is contained in:
John-David Dalton
2015-10-12 23:23:51 -07:00
parent 6dec9cb831
commit e4220282c8

View File

@@ -2544,10 +2544,15 @@
});
QUnit.test('should return `false` as soon as a predicate returns falsey', function(assert) {
assert.expect(1);
assert.expect(2);
var count = 0,
falsey = function() { count++; return false; },
truthy = function() { count++; return true; },
conjed = _.conj(truthy, falsey, truthy);
var conjed = _.conj(_.constant(true), _.constant(null), _.constant(true));
assert.strictEqual(conjed(), false);
assert.strictEqual(count, 2);
});
QUnit.test('should use `_.identity` when a predicate is nullish', function(assert) {
@@ -3849,6 +3854,18 @@
assert.strictEqual(disjed(), true);
});
QUnit.test('should return `true` as soon as `predicate` returns truthy', function(assert) {
assert.expect(2);
var count = 0,
falsey = function() { count++; return false; },
truthy = function() { count++; return true; },
disjed = _.disj(falsey, truthy, falsey);
assert.strictEqual(disjed(), true);
assert.strictEqual(count, 2);
});
QUnit.test('should return `false` if all predicates return falsey', function(assert) {
assert.expect(2);