Make toEqual matcher report the difference between objects

- Mismatches deep within object/array structures are pinpointed with a JsonPath-like syntax.
This commit is contained in:
Ben Christel
2016-07-18 15:17:00 -07:00
committed by Ben Christel
parent 5a76e59d5b
commit d5e6bf47ed
17 changed files with 2251 additions and 1156 deletions

View File

@@ -1,4 +1,4 @@
getJasmineRequireObj().toEqual = function() {
getJasmineRequireObj().toEqual = function(j$) {
function toEqual(util, customEqualityTesters) {
customEqualityTesters = customEqualityTesters || [];
@@ -6,10 +6,14 @@ getJasmineRequireObj().toEqual = function() {
return {
compare: function(actual, expected) {
var result = {
pass: false
};
pass: false
},
diffBuilder = j$.DiffBuilder();
result.pass = util.equals(actual, expected, customEqualityTesters);
result.pass = util.equals(actual, expected, customEqualityTesters, diffBuilder);
// TODO: only set error message if test fails
result.message = diffBuilder.getMessage();
return result;
}