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

@@ -429,17 +429,30 @@ describe("toEqual", function() {
expect(compareEquals(actual, expected).message).toEqual(message);
});
it("reports mismatches involving objectContaining and an object", function() {
var actual = {x: {a: 1, b: 4, c: 3, extra: 'ignored'}};
var expected = {x: jasmineUnderTest.objectContaining({a: 1, b: 2, c: 3})};
expect(compareEquals(actual, expected).message).toEqual('Expected $.x.b = 4 to equal 2.');
it('reports mismatches between an object and objectContaining', function() {
var actual = {a: 1, b: 4, c: 3, extra: 'ignored'};
var expected = jasmineUnderTest.objectContaining({a: 1, b: 2, c: 3, d: 4});
expect(compareEquals(actual, expected).message)
.toEqual(
'Expected $.b = 4 to equal 2.\n' +
'Expected $.d = undefined to equal 4.'
);
});
it("reports mismatches between a non-object and objectContaining", function() {
var actual = {x: 1};
var expected = {x: jasmineUnderTest.objectContaining({a: 1})};
var actual = 1;
var expected = jasmineUnderTest.objectContaining({a: 1});
expect(compareEquals(actual, expected).message).toEqual(
"Expected $.x = 1 to equal '<jasmine.objectContaining(Object({ a: 1 }))>'."
"Expected 1 to equal '<jasmine.objectContaining(Object({ a: 1 }))>'."
);
});
it("reports mismatches involving a nested objectContaining", function() {
var actual = {x: {a: 1, b: 4, c: 3, extra: 'ignored'}};
var expected = {x: jasmineUnderTest.objectContaining({a: 1, b: 2, c: 3, d: 4})};
expect(compareEquals(actual, expected).message).toEqual(
'Expected $.x.b = 4 to equal 2.\n' +
'Expected $.x.d = undefined to equal 4.'
);
});