Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Include symbol keys when diffing objects
As a result of jestjs#13639, `expect.toMatchObject` can now compare symbol keys. However, the diffs that it generates if a symbol key doesn't match are misleading. For example, the following assertion: ``` const Foo = Symbol("foo"); test("mismatched symbols", () => { expect({ a: 1, [Foo]: {id: 1} }).toMatchObject({ a: 1, [Foo]: {id: 2} }); }); ``` fails as desired, but it displays the following diff: ``` - Expected - 3 + Received + 0 Object { "a": 1, - Symbol(foo): Object { - "id": 2, - }, } ``` *Note*: In inspecting the code, I wonder if `getObjectSubset` should use the same logic as `subsetEquality` - i.e., if `subsetEquality` does not evaluate an object's inherited string keys when determining equality, then `getObjectSubset` should not evaluate an object's inherited string keys for reporting on inequality? To put it another way - jestjs#13639 appears to change `subsetEquality` from considering an object's inherited string keys to not considering inherited string keys, and I'm not sure if that was intentional in a SemVer-minor change. For now, I've preserved the previous behavior, but let me know if this should change. Fixes jestjs#13809
- Loading branch information