Pass custom testers to asymmetric testers

This allows custom equality testers to affect asymmetric matches.
This avoid suprises when combining addCustomEqualityTester with
objectContaining or arrayContaining.

Closes #1138
This commit is contained in:
Joey Parrish
2016-06-23 14:33:39 -07:00
parent f6da084642
commit de7b7c029e
8 changed files with 75 additions and 16 deletions

View File

@@ -55,7 +55,7 @@ getJasmineRequireObj().matchersUtil = function(j$) {
return obj && j$.isA_('Function', obj.asymmetricMatch);
}
function asymmetricMatch(a, b) {
function asymmetricMatch(a, b, customTesters) {
var asymmetricA = isAsymmetric(a),
asymmetricB = isAsymmetric(b);
@@ -64,11 +64,11 @@ getJasmineRequireObj().matchersUtil = function(j$) {
}
if (asymmetricA) {
return a.asymmetricMatch(b);
return a.asymmetricMatch(b, customTesters);
}
if (asymmetricB) {
return b.asymmetricMatch(a);
return b.asymmetricMatch(a, customTesters);
}
}
@@ -77,7 +77,7 @@ getJasmineRequireObj().matchersUtil = function(j$) {
function eq(a, b, aStack, bStack, customTesters) {
var result = true;
var asymmetricResult = asymmetricMatch(a, b);
var asymmetricResult = asymmetricMatch(a, b, customTesters);
if (!j$.util.isUndefined(asymmetricResult)) {
return asymmetricResult;
}