-
-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Bug]: Symbols result in misleading diffs #13809
Labels
Comments
joshkel
added a commit
to joshkel/jest
that referenced
this issue
Jan 24, 2023
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
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Version
29.4.0
Steps to reproduce
Expected behavior
A diff that indicates the different property:
Actual behavior
A diff that acts like the received object had no symbol property at all:
Additional context
As a result of #13639,
expect.toMatchObject
can now compare symbol keys. However,getObjectSubset
wasn't updated to match, so the resulting diffs can be misleading or confusing.Environment
The text was updated successfully, but these errors were encountered: