-
-
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
Include symbol keys when diffing objects #13810
Conversation
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
That does sound wrong, yeah. @lpizzinidev thoughts? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The change in this PR makes sense regardless, so landing. But the question brought up in the OP should be answered.
@SimenB We should probably substitute https://github.com/facebook/jest/blob/be021fa8b722f1d367833e8f48bbb08e6e3dd687/packages/expect-utils/src/utils.ts#L346 with
I can submit a PR if you think that is the case. |
Yeah, that sounds about right to me 👍 |
<h3>Snyk has created this PR to upgrade multiple dependencies.</h3> 👯 The following dependencies are linked and will therefore be updated together. </br></br> :information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project. </br></br> Name | Versions | Released on :-------------|:-------------|:------------- **babel-jest**</br>from 29.4.0 to 29.4.3 | **3 versions** ahead of your current version | **a month ago**</br>on 2023-02-15 **jest**</br>from 29.4.0 to 29.4.3 | **3 versions** ahead of your current version | **a month ago**</br>on 2023-02-15 <details> <summary><b>Release notes</b></summary> <br/> <details> <summary>Package name: <b>babel-jest</b></summary> <ul> <li> <b>29.4.3</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.3">2023-02-15</a></br><h2>Features</h2> <ul> <li><code>[expect]</code> Update <code>toThrow()</code> to be able to use error <code>cause</code>s (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13606" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13606/hovercard">#13606</a>)</li> <li><code>[jest-core]</code> allow to use <code>workerIdleMemoryLimit</code> with only 1 worker or <code>runInBand</code> option (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13846" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13846/hovercard">#13846</a>)</li> <li><code>[jest-message-util]</code> Add support for <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause" rel="nofollow">error <code>cause</code>s</a> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13868" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13868/hovercard">#13868</a> & <a href="https://snyk.io/redirect/github/facebook/jest/pull/13912" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13912/hovercard">#13912</a>)</li> <li><code>[jest-runtime]</code> Revert <code>import assertions</code> for JSON modules as it's been relegated to Stage 2 (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13911" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13911/hovercard">#13911</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[@ jest/expect-utils]</code> <code>subsetEquality</code> should consider also an object's inherited string keys (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13824" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13824/hovercard">#13824</a>)</li> <li><code>[jest-mock]</code> Clear mock state when <code>jest.restoreAllMocks()</code> is called (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13867" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13867/hovercard">#13867</a>)</li> <li><code>[jest-mock]</code> Prevent <code>mockImplementationOnce</code> and <code>mockReturnValueOnce</code> bleeding into <code>withImplementation</code> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13888" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13888/hovercard">#13888</a>)</li> <li><code>[jest-mock]</code> Do not restore mocks when <code>jest.resetAllMocks()</code> is called (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13866" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13866/hovercard">#13866</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brodo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/brodo">@ brodo</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1574461036" data-permission-text="Title is private" data-url="jestjs/jest#13868" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13868/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13868">#13868</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DannyNemer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/DannyNemer">@ DannyNemer</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1577012341" data-permission-text="Title is private" data-url="jestjs/jest#13878" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13878/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13878">#13878</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ghusse/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/ghusse">@ ghusse</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1563899430" data-permission-text="Title is private" data-url="jestjs/jest#13846" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13846/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13846">#13846</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/broofa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/broofa">@ broofa</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1584573240" data-permission-text="Title is private" data-url="jestjs/jest#13911" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13911/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13911">#13911</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://snyk.io/redirect/github/facebook/jest/compare/v29.4.2...v29.4.3"><tt>v29.4.2...v29.4.3</tt></a></p> </li> <li> <b>29.4.2</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.2">2023-02-07</a></br><h2>Features</h2> <ul> <li><code>[@ jest/core]</code> Instrument significant lifecycle events with <a href="https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performancemarkname-options" rel="nofollow"><code>performance.mark()</code></a> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13859" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13859/hovercard">#13859</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[expect, @ jest/expect]</code> Provide type of <code>actual</code> as a generic argument to <code>Matchers</code> to allow better-typed extensions (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13848" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13848/hovercard">#13848</a>)</li> <li><code>[jest-circus]</code> Added explicit mention of test failing because <code>done()</code> is not being called in error message (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13847" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13847/hovercard">#13847</a>)</li> <li><code>[jest-runtime]</code> Handle CJS re-exports of node core modules from ESM (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13856" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13856/hovercard">#13856</a>)</li> <li><code>[jest-transform]</code> Downgrade <code>write-file-atomic</code> to v4 (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13853" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13853/hovercard">#13853</a>)</li> <li><code>[jest-worker]</code> Ignore IPC messages not intended for Jest (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13543" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13543/hovercard">#13543</a>)</li> </ul> <h2>Chore & Maintenance</h2> <ul> <li><code>[*]</code> make sure to exclude <code>.eslintcache</code> from published module (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13832" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13832/hovercard">#13832</a>)</li> <li><code>[docs]</code> Cleanup incorrect links in CHANGELOG.md (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13857" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13857/hovercard">#13857</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benjaminjkraft/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/benjaminjkraft">@ benjaminjkraft</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1565086384" data-permission-text="Title is private" data-url="jestjs/jest#13848" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13848/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13848">#13848</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LinusU/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/LinusU">@ LinusU</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1429918882" data-permission-text="Title is private" data-url="jestjs/jest#13543" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13543/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13543">#13543</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SuperSodaSea/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/SuperSodaSea">@ SuperSodaSea</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1570108297" data-permission-text="Title is private" data-url="jestjs/jest#13857" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13857/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13857">#13857</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kowalski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/kowalski">@ kowalski</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1570043142" data-permission-text="Title is private" data-url="jestjs/jest#13856" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13856/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13856">#13856</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://snyk.io/redirect/github/facebook/jest/compare/v29.4.1...v29.4.2"><tt>v29.4.1...v29.4.2</tt></a></p> </li> <li> <b>29.4.1</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.1">2023-01-26</a></br><h2>Features</h2> <ul> <li><code>[expect, jest-circus, @ jest/types]</code> Implement <code>numPassingAsserts</code> of testResults to track the number of passing asserts in a test (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13795" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13795/hovercard">#13795</a>)</li> <li><code>[jest-core]</code> Add newlines to JSON output (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13817" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13817/hovercard">#13817</a>)</li> <li><code>[@ jest/reporters]</code> Automatic log folding in GitHub Actions Reporter (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13626" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13626/hovercard">#13626</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[@ jest/expect-utils]</code> <code>toMatchObject</code> diffs should include <code>Symbol</code> properties (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13810" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13810/hovercard">#13810</a>)</li> <li><code>[jest-runtime]</code> Handle missing <code>replaceProperty</code> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13823" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13823/hovercard">#13823</a>)</li> <li><code>[@ jest/types]</code> Add partial support for <code>done</code> callbacks in typings of <code>each</code> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13756" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13756/hovercard">#13756</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/jessevanassen/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/jessevanassen">@ jessevanassen</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1556823163" data-permission-text="Title is private" data-url="jestjs/jest#13817" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13817/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13817">#13817</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ymqy/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/ymqy">@ ymqy</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1551728671" data-permission-text="Title is private" data-url="jestjs/jest#13795" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13795/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13795">#13795</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/MatteoH2O1999/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/MatteoH2O1999">@ MatteoH2O1999</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1455128768" data-permission-text="Title is private" data-url="jestjs/jest#13626" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13626/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13626">#13626</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://snyk.io/redirect/github/facebook/jest/compare/v29.4.0...v29.4.1"><tt>v29.4.0...v29.4.1</tt></a></p> </li> <li> <b>29.4.0</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.0">2023-01-24</a></br><a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.0"> Read more </a> </li> </ul> from <a href="https://snyk.io/redirect/github/facebook/jest/releases">babel-jest GitHub release notes</a> </details> <details> <summary>Package name: <b>jest</b></summary> <ul> <li> <b>29.4.3</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.3">2023-02-15</a></br><h2>Features</h2> <ul> <li><code>[expect]</code> Update <code>toThrow()</code> to be able to use error <code>cause</code>s (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13606" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13606/hovercard">#13606</a>)</li> <li><code>[jest-core]</code> allow to use <code>workerIdleMemoryLimit</code> with only 1 worker or <code>runInBand</code> option (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13846" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13846/hovercard">#13846</a>)</li> <li><code>[jest-message-util]</code> Add support for <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/cause" rel="nofollow">error <code>cause</code>s</a> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13868" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13868/hovercard">#13868</a> & <a href="https://snyk.io/redirect/github/facebook/jest/pull/13912" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13912/hovercard">#13912</a>)</li> <li><code>[jest-runtime]</code> Revert <code>import assertions</code> for JSON modules as it's been relegated to Stage 2 (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13911" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13911/hovercard">#13911</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[@ jest/expect-utils]</code> <code>subsetEquality</code> should consider also an object's inherited string keys (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13824" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13824/hovercard">#13824</a>)</li> <li><code>[jest-mock]</code> Clear mock state when <code>jest.restoreAllMocks()</code> is called (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13867" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13867/hovercard">#13867</a>)</li> <li><code>[jest-mock]</code> Prevent <code>mockImplementationOnce</code> and <code>mockReturnValueOnce</code> bleeding into <code>withImplementation</code> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13888" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13888/hovercard">#13888</a>)</li> <li><code>[jest-mock]</code> Do not restore mocks when <code>jest.resetAllMocks()</code> is called (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13866" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13866/hovercard">#13866</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/brodo/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/brodo">@ brodo</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1574461036" data-permission-text="Title is private" data-url="jestjs/jest#13868" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13868/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13868">#13868</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/DannyNemer/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/DannyNemer">@ DannyNemer</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1577012341" data-permission-text="Title is private" data-url="jestjs/jest#13878" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13878/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13878">#13878</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/ghusse/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/ghusse">@ ghusse</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1563899430" data-permission-text="Title is private" data-url="jestjs/jest#13846" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13846/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13846">#13846</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/broofa/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/broofa">@ broofa</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1584573240" data-permission-text="Title is private" data-url="jestjs/jest#13911" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13911/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13911">#13911</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://snyk.io/redirect/github/facebook/jest/compare/v29.4.2...v29.4.3"><tt>v29.4.2...v29.4.3</tt></a></p> </li> <li> <b>29.4.2</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.2">2023-02-07</a></br><h2>Features</h2> <ul> <li><code>[@ jest/core]</code> Instrument significant lifecycle events with <a href="https://nodejs.org/docs/latest-v16.x/api/perf_hooks.html#performancemarkname-options" rel="nofollow"><code>performance.mark()</code></a> (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13859" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13859/hovercard">#13859</a>)</li> </ul> <h2>Fixes</h2> <ul> <li><code>[expect, @ jest/expect]</code> Provide type of <code>actual</code> as a generic argument to <code>Matchers</code> to allow better-typed extensions (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13848" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13848/hovercard">#13848</a>)</li> <li><code>[jest-circus]</code> Added explicit mention of test failing because <code>done()</code> is not being called in error message (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13847" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13847/hovercard">#13847</a>)</li> <li><code>[jest-runtime]</code> Handle CJS re-exports of node core modules from ESM (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13856" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13856/hovercard">#13856</a>)</li> <li><code>[jest-transform]</code> Downgrade <code>write-file-atomic</code> to v4 (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13853" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13853/hovercard">#13853</a>)</li> <li><code>[jest-worker]</code> Ignore IPC messages not intended for Jest (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13543" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13543/hovercard">#13543</a>)</li> </ul> <h2>Chore & Maintenance</h2> <ul> <li><code>[*]</code> make sure to exclude <code>.eslintcache</code> from published module (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13832" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13832/hovercard">#13832</a>)</li> <li><code>[docs]</code> Cleanup incorrect links in CHANGELOG.md (<a href="https://snyk.io/redirect/github/facebook/jest/pull/13857" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13857/hovercard">#13857</a>)</li> </ul> <h2>New Contributors</h2> <ul> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/benjaminjkraft/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/benjaminjkraft">@ benjaminjkraft</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1565086384" data-permission-text="Title is private" data-url="jestjs/jest#13848" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13848/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13848">#13848</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/LinusU/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/LinusU">@ LinusU</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1429918882" data-permission-text="Title is private" data-url="jestjs/jest#13543" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13543/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13543">#13543</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/SuperSodaSea/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/SuperSodaSea">@ SuperSodaSea</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1570108297" data-permission-text="Title is private" data-url="jestjs/jest#13857" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13857/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13857">#13857</a></li> <li><a class="user-mention notranslate" data-hovercard-type="user" data-hovercard-url="/users/kowalski/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://snyk.io/redirect/github/kowalski">@ kowalski</a> made their first contribution in <a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="1570043142" data-permission-text="Title is private" data-url="jestjs/jest#13856" data-hovercard-type="pull_request" data-hovercard-url="/jestjs/jest/pull/13856/hovercard" href="https://snyk.io/redirect/github/facebook/jest/pull/13856">#13856</a></li> </ul> <p><strong>Full Changelog</strong>: <a class="commit-link" href="https://snyk.io/redirect/github/facebook/jest/compare/v29.4.1...v29.4.2"><tt>v29.4.1...v29.4.2</tt></a></p> </li> <li> <b>29.4.1</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.1">2023-01-26</a></br><a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.1"> Read more </a> </li> <li> <b>29.4.0</b> - <a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.0">2023-01-24</a></br><a href="https://snyk.io/redirect/github/facebook/jest/releases/tag/v29.4.0"> Read more </a> </li> </ul> from <a href="https://snyk.io/redirect/github/facebook/jest/releases">jest GitHub release notes</a> </details> </details> <details> <summary><b>Commit messages</b></summary> </br> <details> <summary>Package name: <b>babel-jest</b></summary> <ul> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/a49c88610e49a3242576160740a32a2fe11161e1">a49c886</a> v29.4.3</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/b08ecb4519cf177e05022e5e1c4f8c711b518dec">b08ecb4</a> chore: update changelog for release</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/0621b2b04c96788b12f8ddf7969ef445f1607844">0621b2b</a> Update toThrow() to be able to use Error.cause (#13606)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/af5d5a140b0c6ba386a4f88fefc5160ff6dffe02">af5d5a1</a> fix: added inherited string keys check on `subsetEquality` method (#13824)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/76ec2a46b1314ed1c6cd21997f96bdcf5cbdd11a">76ec2a4</a> Revert import assertions (#13911)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/5940bf4852a4aa3d27ae241049a548d59ca7c628">5940bf4</a> feat: allow to use workerIdleMemoryLimit with only 1 worker or runInBand option (#13846)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/c72962c689a6085e2554d314ecf2951a3d328f98">c72962c</a> docs: add missing admonitions in configuration page v29 (#13908)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/267fdbe2eaffd2c73b62d98c94c8cad6313d889d">267fdbe</a> feat(jest-message-util): improve detection of error causes (#13912)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/9432fc38105dec12ffc188b7ef25d734854aec52">9432fc3</a> fix(jest-mock): do not restore mocks when `jest.resetAllMocks()` is called (#13866)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/21a92711a22c7b6633909fd42a87499e179d80c2">21a9271</a> chore: do not use built version of circus in unit test (#13907)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/4af916f7d8b813993182999e28f56c20de9760ad">4af916f</a> chore: do not use deep imports in unit tests (#13905)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/dd4ea74888ae60b89d81702eda9caee47abaa7af">dd4ea74</a> docs: clean up Getting Started page (#13896)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/bed4891b0e5b614988e5a65fca29c4734cdb3c2e">bed4891</a> chore: retry cleanup in e2e tests (#13900)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/59cf4e39ba1c0e2675085a937d69131adea273d8">59cf4e3</a> docs: Fix typos in documentation for custom equality testers (#13878)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/f9f7d79c07e09be788fcb80db7ef662aa2a56836">f9f7d79</a> docs: add few missing admonitions to the CLI Options page (#13894)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/2818bf188617922b44fba8ac4893f86f9bda00a9">2818bf1</a> [jest-config] simplify filter-reduce (#13899)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/c81dfafc15982e8193d71d7b5a28d7e18d802d0f">c81dfaf</a> jest-each: simplify interpolation (#13898)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/ee1895fed4581a310b8225a96cab2f39f0adec9d">ee1895f</a> docs: add few missing admonitions to the Expect API page (#13892)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/fa1930d0ab04c7d4fecb0cffa347a758e9e556c2">fa1930d</a> docs: use `npm2yarn` in all versions of Getting Started page (#13893)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/4fbec418d2e0f0c9783b461e3bd6598059f51371">4fbec41</a> docs: add a note on difference between `toEqual` and `toStrictEqual` (#13891)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/dc0ac7580f9ab1a7e8aa108b206f1eaa2f8e2b15">dc0ac75</a> chore: retry yarn install in e2e tests (#13890)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/0d69a73169ac449f9690f9d8c6b4a9572363518b">0d69a73</a> fix(jest-mock): prevent `mockImplementationOnce` bleeding into `withImplementation` (#13888)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/d97b76098c5514ad27cc55186a1f07491b2250f0">d97b760</a> refactor(jest-mock): remove unused `specificReturnValues` property (#13889)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/94b73a2dd8bf8f6225769f2fe4a9322ac85483d8">94b73a2</a> chore(e2e): attempt to log better errors when running commands (#13881)</li> </ul> <a href="https://snyk.io/redirect/github/facebook/jest/compare/4bc0e8acaf990e6618a7bed1dca67760c20bb12a...a49c88610e49a3242576160740a32a2fe11161e1">Compare</a> </details> <details> <summary>Package name: <b>jest</b></summary> <ul> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/a49c88610e49a3242576160740a32a2fe11161e1">a49c886</a> v29.4.3</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/b08ecb4519cf177e05022e5e1c4f8c711b518dec">b08ecb4</a> chore: update changelog for release</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/0621b2b04c96788b12f8ddf7969ef445f1607844">0621b2b</a> Update toThrow() to be able to use Error.cause (#13606)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/af5d5a140b0c6ba386a4f88fefc5160ff6dffe02">af5d5a1</a> fix: added inherited string keys check on `subsetEquality` method (#13824)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/76ec2a46b1314ed1c6cd21997f96bdcf5cbdd11a">76ec2a4</a> Revert import assertions (#13911)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/5940bf4852a4aa3d27ae241049a548d59ca7c628">5940bf4</a> feat: allow to use workerIdleMemoryLimit with only 1 worker or runInBand option (#13846)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/c72962c689a6085e2554d314ecf2951a3d328f98">c72962c</a> docs: add missing admonitions in configuration page v29 (#13908)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/267fdbe2eaffd2c73b62d98c94c8cad6313d889d">267fdbe</a> feat(jest-message-util): improve detection of error causes (#13912)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/9432fc38105dec12ffc188b7ef25d734854aec52">9432fc3</a> fix(jest-mock): do not restore mocks when `jest.resetAllMocks()` is called (#13866)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/21a92711a22c7b6633909fd42a87499e179d80c2">21a9271</a> chore: do not use built version of circus in unit test (#13907)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/4af916f7d8b813993182999e28f56c20de9760ad">4af916f</a> chore: do not use deep imports in unit tests (#13905)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/dd4ea74888ae60b89d81702eda9caee47abaa7af">dd4ea74</a> docs: clean up Getting Started page (#13896)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/bed4891b0e5b614988e5a65fca29c4734cdb3c2e">bed4891</a> chore: retry cleanup in e2e tests (#13900)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/59cf4e39ba1c0e2675085a937d69131adea273d8">59cf4e3</a> docs: Fix typos in documentation for custom equality testers (#13878)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/f9f7d79c07e09be788fcb80db7ef662aa2a56836">f9f7d79</a> docs: add few missing admonitions to the CLI Options page (#13894)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/2818bf188617922b44fba8ac4893f86f9bda00a9">2818bf1</a> [jest-config] simplify filter-reduce (#13899)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/c81dfafc15982e8193d71d7b5a28d7e18d802d0f">c81dfaf</a> jest-each: simplify interpolation (#13898)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/ee1895fed4581a310b8225a96cab2f39f0adec9d">ee1895f</a> docs: add few missing admonitions to the Expect API page (#13892)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/fa1930d0ab04c7d4fecb0cffa347a758e9e556c2">fa1930d</a> docs: use `npm2yarn` in all versions of Getting Started page (#13893)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/4fbec418d2e0f0c9783b461e3bd6598059f51371">4fbec41</a> docs: add a note on difference between `toEqual` and `toStrictEqual` (#13891)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/dc0ac7580f9ab1a7e8aa108b206f1eaa2f8e2b15">dc0ac75</a> chore: retry yarn install in e2e tests (#13890)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/0d69a73169ac449f9690f9d8c6b4a9572363518b">0d69a73</a> fix(jest-mock): prevent `mockImplementationOnce` bleeding into `withImplementation` (#13888)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/d97b76098c5514ad27cc55186a1f07491b2250f0">d97b760</a> refactor(jest-mock): remove unused `specificReturnValues` property (#13889)</li> <li><a href="https://snyk.io/redirect/github/facebook/jest/commit/94b73a2dd8bf8f6225769f2fe4a9322ac85483d8">94b73a2</a> chore(e2e): attempt to log better errors when running commands (#13881)</li> </ul> <a href="https://snyk.io/redirect/github/facebook/jest/compare/4bc0e8acaf990e6618a7bed1dca67760c20bb12a...a49c88610e49a3242576160740a32a2fe11161e1">Compare</a> </details> </details> <hr/> **Note:** *You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.* For more information: <img src="https://api.segment.io/v1/pixel/track?data=eyJ3cml0ZUtleSI6InJyWmxZcEdHY2RyTHZsb0lYd0dUcVg4WkFRTnNCOUEwIiwiYW5vbnltb3VzSWQiOiI0OWI1MDA4MC1lNjEzLTQ0NGItYmI4Yy04MTk1YjYwNDRkOTMiLCJldmVudCI6IlBSIHZpZXdlZCIsInByb3BlcnRpZXMiOnsicHJJZCI6IjQ5YjUwMDgwLWU2MTMtNDQ0Yi1iYjhjLTgxOTViNjA0NGQ5MyJ9fQ==" width="0" height="0"/> 🧐 [View latest project report](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55?utm_source=github&utm_medium=referral&page=upgrade-pr) 🛠 [Adjust upgrade PR settings](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55/settings/integration?utm_source=github&utm_medium=referral&page=upgrade-pr) 🔕 [Ignore this dependency or unsubscribe from future upgrade PRs](https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55/settings/integration?pkg=babel-jest&pkg=jest&utm_source=github&utm_medium=referral&page=upgrade-pr#auto-dep-upgrades) <!--- (snyk:metadata:{"prId":"49b50080-e613-444b-bb8c-8195b6044d93","prPublicId":"49b50080-e613-444b-bb8c-8195b6044d93","dependencies":[{"name":"babel-jest","from":"29.4.0","to":"29.4.3"},{"name":"jest","from":"29.4.0","to":"29.4.3"}],"packageManager":"npm","type":"auto","projectUrl":"https://app.snyk.io/org/sandbox-2ba/project/852e6e4f-be96-45c8-b370-1060f5ebee55?utm_source=github&utm_medium=referral&page=upgrade-pr","projectPublicId":"852e6e4f-be96-45c8-b370-1060f5ebee55","env":"prod","prType":"upgrade","vulns":[],"issuesToFix":[],"upgrade":[],"upgradeInfo":{"versionsDiff":3,"publishedDate":"2023-02-15T11:57:31.305Z"},"templateVariants":[],"hasFixes":false,"isMajorUpgrade":false,"isBreakingChange":false,"priorityScoreList":[]}) ---> --------- Co-authored-by: snyk-bot <snyk-bot@snyk.io>
This pull request has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Summary
As a result of #13639,
expect.toMatchObject
can now compare symbol keys. However, the diffs that it generates if a symbol key doesn't match are misleading.Note: In inspecting the code, I wonder if
getObjectSubset
should use the same logic assubsetEquality
- i.e., ifsubsetEquality
does not evaluate an object's inherited string keys when determining equality, thengetObjectSubset
should not evaluate an object's inherited string keys for reporting on inequality? To put it another way - #13639 appears to changesubsetEquality
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.Test plan
See examples from #13809.