diff --git a/CHANGELOG.md b/CHANGELOG.md index a761caa7db16..9fec65bc88ce 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,8 @@ ### Fixes +* `[enzyme]` Allow matching of Errors against plain objects + ([#5611](https://github.com/facebook/jest/pull/5611)) * `[jest-cli]` Don't skip matchers for exact files ([#5582](https://github.com/facebook/jest/pull/5582)) * `[docs]` Update discord links diff --git a/packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap b/packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap index 7a1471e697b2..88231feef9a7 100644 --- a/packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap +++ b/packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap @@ -3983,6 +3983,15 @@ Received: [1, 2]" `; +exports[`toMatchObject() {pass: true} expect([Error: bar]).toMatchObject({"message": "bar"}) 1`] = ` +"expect(received).not.toMatchObject(expected) + +Expected value not to match object: + {\\"message\\": \\"bar\\"} +Received: + [Error: bar]" +`; + exports[`toMatchObject() {pass: true} expect([Error: foo]).toMatchObject([Error: foo]) 1`] = ` "expect(received).not.toMatchObject(expected) diff --git a/packages/expect/src/__tests__/matchers.test.js b/packages/expect/src/__tests__/matchers.test.js index 7a3d2805b89a..5eb422fb3773 100644 --- a/packages/expect/src/__tests__/matchers.test.js +++ b/packages/expect/src/__tests__/matchers.test.js @@ -28,6 +28,9 @@ describe('.rejects', () => { await jestExpect(Promise.reject({a: 1, b: 2})).rejects.not.toMatchObject({ c: 1, }); + await jestExpect( + Promise.reject(new Error('rejectMessage')), + ).rejects.toMatchObject({message: 'rejectMessage'}); await jestExpect(Promise.reject(new Error())).rejects.toThrow(); }); @@ -960,6 +963,7 @@ describe('toMatchObject()', () => { [{a: undefined}, {a: undefined}], [[], []], [new Error('foo'), new Error('foo')], + [new Error('bar'), {message: 'bar'}], ].forEach(([n1, n2]) => { it(`{pass: true} expect(${stringify(n1)}).toMatchObject(${stringify( n2, diff --git a/packages/expect/src/utils.js b/packages/expect/src/utils.js index 010f5d9b8d40..4018e5b09633 100644 --- a/packages/expect/src/utils.js +++ b/packages/expect/src/utils.js @@ -174,7 +174,7 @@ const isObjectWithKeys = a => !(a instanceof Date); export const subsetEquality = (object: Object, subset: Object) => { - if (!isObjectWithKeys(object) || !isObjectWithKeys(subset)) { + if (!isObjectWithKeys(subset)) { return undefined; }