Show diffs involving root-level asymmetric equality testers

* Fixes #1831
This commit is contained in:
Steve Gravrock
2020-07-08 17:02:11 -07:00
parent f8ae3eaeaa
commit aa6cc31057
5 changed files with 87 additions and 20 deletions

View File

@@ -72,12 +72,7 @@ getJasmineRequireObj().DiffBuilder = function (j$) {
};
function dereferencePath(objectPath, actual, expected, pp) {
var i, asymmetricResult;
for (i = 0; i < objectPath.components.length; i++) {
actual = actual[objectPath.components[i]];
expected = expected[objectPath.components[i]];
function handleAsymmetricExpected() {
if (j$.isAsymmetricEqualityTester_(expected) && j$.isFunction_(expected.valuesForDiff_)) {
var asymmetricResult = expected.valuesForDiff_(actual, pp);
expected = asymmetricResult.self;
@@ -85,6 +80,15 @@ getJasmineRequireObj().DiffBuilder = function (j$) {
}
}
var i;
handleAsymmetricExpected();
for (i = 0; i < objectPath.components.length; i++) {
actual = actual[objectPath.components[i]];
expected = expected[objectPath.components[i]];
handleAsymmetricExpected();
}
return {actual: actual, expected: expected};
}