-
-
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
feat(jest-message-util): add support for error causes #13868
Conversation
87fe938
to
8791e02
Compare
@mrazauskas Thanks for the quick review. I did all the changes and added the snapshot file. I also added a link to the Node changelog to where this feature was introduced. (It was indeed 16.9.0). |
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.
sweet, thanks!
I implemented all the changes @SimenB requested. BTW: I don't know if keeping this all in one commit is the best way to do it. I assumed it's the best, so it's only one commit when it's merged but I don't know if it's a good idea for the review process. Would it be better to have several commits for the review process and then squash them before they are merged? |
We squash on merge anyways, so multiple commits are easier for review. The diff in this PR is quite small though, so no big issue 🙂 |
Hey, thank you very much for this ! GG |
I might be wrong but it seems that jest-circus already pre-processes the error, leading to this code not to be executed for something like: function g() {
throw new Error("boom");
}
function f() {
try {
g();
} catch (err) {
throw new Error("plouf", { cause: err });
}
}
it("works", () => {
f();
}); Do I miss something to properly use cause? EDIT: I re-read the code, it's written "ExecError is an error thrown outside of the test suite (not inside an |
we should work with causes inside functions as well. Wanna send a PR? 😀 |
Currently trying to check how to do. As errors are extracted from a string in jest-message-util (see formatResultsErrors which uses result.failureMessages, a string version). 😂 Seems that we rebuild an error out of this text version via separateMessageFromStack. |
By the way, I do have a working version of it locally I switched from result.failureMessage to result.failureDetails, but I'll need to replug checkForCommonEnvironmentErrors |
By the way, switching to the raw Error object instead of its string versions should drop errors I got reported many times in fast-check that might be related to separateMessageFromStack not able to re-extract the stack and message from some complex and nested ones. |
@SimenB Here my drafty work dubzzz@887c2b6. I'll rework on it as many things sucks in it. Details being unknown, cause too, I'll need to put something cleaner and safer probably fall-backing onto the original stringified version of the error. |
PR opened to add the support for it and test, see #13935 |
<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
Adds support for error causes.
This fixes #12999
Example output:
I'm sure this can be made prettier, but as a minimal implementation I think it is good enough.
Test plan
I've added a single unit test that checks if the cause is contained in the generated message. Otherwise I just looked at the output manually.