-
-
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
Add --detectOpenHandles
flag
#6130
Conversation
packages/jest-cli/package.json
Outdated
@@ -39,6 +40,9 @@ | |||
"which": "^1.2.12", | |||
"yargs": "^11.0.0" | |||
}, | |||
"optionalDependencies": { | |||
"why-is-node-running": "^2.0.2" |
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.
this needs Node 8 (uses async hooks), hoping sticking it in optionalDependencies
is enough
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.
if not, we could do the same thing detectLeaks
does - require the user to install it themselves
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.
What was the reason we didn't put weak
in optional dependencies? Package managers tried to install it anyway?
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 output was horrendous when it failed, and windows installs still crashed. See #5169
packages/jest-cli/src/cli/index.js
Outdated
const message = | ||
chalk.red( | ||
'\nJest has detected the following ' + | ||
`${openHandles.length} open handles potentially keeping Jest from ` + |
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.
Maybe we can use pluralize
? and rephrase to:
Jest has detected 1 open handle potentially preventing it from exiting:
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.
We have our own pluralize
in jest-matcher-utils
. I can move it to jest-util
, perhaps?
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.
There's one in jest-cli
too. Feel free to clean it up :D
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.
ah didn't know about that one. I'll be lazy and just use it then
packages/jest-cli/src/run_jest.js
Outdated
@@ -67,26 +68,75 @@ const getTestPaths = async ( | |||
}); | |||
}; | |||
|
|||
function formatWhyRunning(whyRunning) { |
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.
maybe we can extract why-running-related logic to separate file?
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.
yeah, good call. done
packages/jest-cli/src/run_jest.js
Outdated
return entry.split('\n').some(l => l.includes('this._execModule(')); | ||
}) | ||
.map(entry => { | ||
const [title, ...lines] = entry.split('\n'); |
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.
Dropping Node4 for good <3
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.
I think we transpile this, but yeah 🎉
packages/jest-cli/src/run_jest.js
Outdated
if (whyRunning) { | ||
runResults.openHandles = formatWhyRunning(whyRunning); | ||
} else { | ||
runResults.openHandles = []; |
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.
we can get rid of this check by assigning default value to whyRunning
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.
done
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.
meh, it gave me lots of flow issues
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.
LGTM, this is great 👍
packages/jest-cli/src/cli/index.js
Outdated
.map(({file, line}) => { | ||
const relativeTestPath = slash( | ||
path.relative(globalConfig.rootDir, file), | ||
); |
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.
Do we want to slash this path? I'm not sure if it's possible to cmd/ctrl+click on Windows terminals, but this will probably not help. Just a guess though
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.
we do the same with the normal stack traces. I can drop it here, if you think that's better?
Codecov Report
@@ Coverage Diff @@
## master #6130 +/- ##
==========================================
- Coverage 64.36% 64.19% -0.17%
==========================================
Files 218 219 +1
Lines 8393 8423 +30
Branches 3 4 +1
==========================================
+ Hits 5402 5407 +5
- Misses 2990 3015 +25
Partials 1 1
Continue to review full report at Codecov.
|
packages/jest-cli/package.json
Outdated
@@ -4,8 +4,10 @@ | |||
"version": "22.4.2", | |||
"main": "build/jest.js", | |||
"dependencies": { | |||
"@babel/highlight": "^7.0.0-beta.46", |
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.
this is already in our tree as @babel/codeframe
uses it
packages/jest-cli/package.json
Outdated
"ansi-escapes": "^3.0.0", | ||
"chalk": "^2.0.1", | ||
"easy-table": "^1.1.1", |
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.
seems small enough, happy to take suggestions about others
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.
or other ideas on how to print the info
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.
Stack trace with code frame maybe, but this is OK for now
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.
Ooooh, faking a stack trace with this info, I like the idea! I'll give it a whack later today
@thymikee using code frame: It loses each line, but I think that's fine? |
I was having issues with the sourcemaps, so I ended up just inlining the whole module. That simplifies the code, as I don't have to care about the formatting from them. And we suddenly get function names etc. Note that this is only correct with sourcemaps, so we need to re-apply #5945, otherwise it'll point to the wrong stuff |
Ok, this is incredibly awesome. I really love this feature, thanks for working on it. Before we merge it, here are a two things to consider:
|
Unfortunately, the overhead of
It's now a code frame, so kinda looks like assertion errors. Any way in particular you think it could look more like an assertion error? |
Oh, that's quite a shame. Any way we can upsell this feature if Jest keeps hanging, like The red text followed by the TCPSERVERWRAP and the two newlines afterwards looks odd. Could we make it look like
with the same newlines and indentation as assertion errors? |
Love the iterations!
|
The
Aight, I'll whip something together 🙂 |
Hell yeah. |
Awesome. I'll try to add some tests - I suppose sending sigint in the integration test should work |
Beauty! |
1f4309b
to
e93e633
Compare
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `~22.4.0` to `~23.0.0` <details> <summary>Release Notes</summary> ### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#​2300) [Compare Source](jestjs/jest@2745e3e...614f739) ##### Features * `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality` ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-snapshot]` Add snapshot property matchers ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-config]` Support jest-preset.js files within Node modules ([#​6185](`https://github.com/facebook/jest/pull/6185`)) * `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially track down handles keeping it open after tests are complete. ([#​6130](`https://github.com/facebook/jest/pull/6130`)) * `[jest-jasmine2]` Add data driven testing based on `jest-each` ([#​6102](`https://github.com/facebook/jest/pull/6102`)) * `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory ([#​6103](`https://github.com/facebook/jest/issues/6103`)) * `[jest-message-util]` Don't ignore messages with `vendor` anymore ([#​6117](`https://github.com/facebook/jest/pull/6117`)) * `[jest-validate]` Get rid of `jest-config` dependency ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-validate]` Adds option to inject `deprecationEntries` ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot name and count ([#​6015](`https://github.com/facebook/jest/pull/6015`)) * `[jest-runtime]` Allow for transform plugins to skip the definition process method if createTransformer method was defined. ([#​5999](`https://github.com/facebook/jest/pull/5999`)) * `[expect]` Add stack trace for async errors ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for timeouts ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for thrown non-`Error`s ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-runtime]` Prevent modules from marking themselves as their own parent ([#​5235](`https://github.com/facebook/jest/issues/5235`)) * `[jest-mock]` Add support for auto-mocking generator functions ([#​5983](`https://github.com/facebook/jest/pull/5983`)) * `[expect]` Add support for async matchers ([#​5919](`https://github.com/facebook/jest/pull/5919`)) * `[expect]` Suggest toContainEqual ([#​5948](`https://github.com/facebook/jest/pull/5953`)) * `[jest-config]` Export Jest's default options ([#​5948](`https://github.com/facebook/jest/pull/5948`)) * `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage` ([#​5929](`https://github.com/facebook/jest/pull/5929`)) * `[jest-editor-support]` Add `coverage` option to runner ([#​5836](`https://github.com/facebook/jest/pull/5836`)) * `[jest-haste-map]` Support extracting dynamic `import`s ([#​5883](`https://github.com/facebook/jest/pull/5883`)) * `[expect]` Improve output format for mismatchedArgs in mock/spy calls. ([#​5846](`https://github.com/facebook/jest/pull/5846`)) * `[jest-cli]` Add support for using `--coverage` in combination with watch mode, `--onlyChanged`, `--findRelatedTests` and more ([#​5601](`https://github.com/facebook/jest/pull/5601`)) * `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments ([#​5558](`https://github.com/facebook/jest/pull/5558`)) * `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function ([#​5512](`https://github.com/facebook/jest/pull/5512`)) * `[jest-config]` Add `<rootDir>` to runtime files not found error report ([#​5693](`https://github.com/facebook/jest/pull/5693`)) * `[expect]` Make toThrow matcher pass only if Error object is returned from promises ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add isError to utils ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc., [#​5517](`https://github.com/facebook/jest/pull/5517`)) * `[expect]` `expect.extend` now also extends asymmetric matchers ([#​5503](`https://github.com/facebook/jest/pull/5503`)) * `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain ([#​5753](`https://github.com/facebook/jest/pull/5753`)) * `[jest-mock]` Add tracking of return values in the `mock` property ([#​5752](`https://github.com/facebook/jest/pull/5752`)) * `[jest-mock]` Add tracking of thrown errors in the `mock` property ([#​5764](`https://github.com/facebook/jest/pull/5764`)) * `[expect]`Add nthCalledWith spy matcher ([#​5605](`https://github.com/facebook/jest/pull/5605`)) * `[jest-cli]` Add `isSerial` property that runners can expose to specify that they can not run in parallel ([#​5706](`https://github.com/facebook/jest/pull/5706`)) * `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases ([#​5826](`https://github.com/facebook/jest/pull/5826`)) * `[jest-cli]` Interactive Snapshot Mode improvements ([#​5864](`https://github.com/facebook/jest/pull/5864`)) * `[jest-editor-support]` Add `no-color` option to runner ([#​5909](`https://github.com/facebook/jest/pull/5909`)) * `[jest-jasmine2]` Pretty-print non-Error object errors ([#​5980](`https://github.com/facebook/jest/pull/5980`)) * `[jest-message-util]` Include column in stack frames ([#​5889](`https://github.com/facebook/jest/pull/5889`)) * `[expect]` Introduce toStrictEqual ([#​6032](`https://github.com/facebook/jest/pull/6032`)) * `[expect]` Add return matchers ([#​5879](`https://github.com/facebook/jest/pull/5879`)) * `[jest-cli]` Improve snapshot summaries ([#​6181](`https://github.com/facebook/jest/pull/6181`)) * `[expect]` Include custom mock names in error messages ([#​6199](`https://github.com/facebook/jest/pull/6199`)) * `[jest-diff]` Support returning diff from oneline strings ([#​6221](`https://github.com/facebook/jest/pull/6221`)) * `[expect]` Improve return matchers ([#​6172](`https://github.com/facebook/jest/pull/6172`)) * `[jest-cli]` Overhaul watch plugin hooks names ([#​6249](`https://github.com/facebook/jest/pull/6249`)) * `[jest-mock]` Include tracked call results in serialized mock ([#​6244](`https://github.com/facebook/jest/pull/6244`)) ##### Fixes * `[jest-cli]` Fix stdin encoding to utf8 for watch plugins. ([#​6253](`https://github.com/facebook/jest/issues/6253`)) * `[expect]` Better detection of DOM Nodes for equality ([#​6246](`https://github.com/facebook/jest/pull/6246`)) * `[jest-cli]` Fix misleading action description for F key when in "only failed tests" mode. ([#​6167](`https://github.com/facebook/jest/issues/6167`)) * `[jest-worker]` Stick calls to workers before processing them ([#​6073](`https://github.com/facebook/jest/pull/6073`)) * `[babel-plugin-jest-hoist]` Allow using `console` global variable ([#​6075](`https://github.com/facebook/jest/pull/6075`)) * `[jest-jasmine2]` Always remove node core message from assert stack traces ([#​6055](`https://github.com/facebook/jest/pull/6055`)) * `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions` causes test failures. ([#​5997](`https://github.com/facebook/jest/pull/5997`)) * `[jest-runtime]` Throw a more useful error when trying to require modules after the test environment is torn down ([#​5888](`https://github.com/facebook/jest/pull/5888`)) * `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder` ([#​5867](`https://github.com/facebook/jest/pull/5867`)) * `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch runtime errors ([#​5945](`https://github.com/facebook/jest/pull/5945`)) * `[jest-jasmine2]` Added assertion error handling inside `afterAll hook` ([#​5884](`https://github.com/facebook/jest/pull/5884`)) * `[jest-cli]` Remove the notifier actions in case of failure when not in watch mode. ([#​5861](`https://github.com/facebook/jest/pull/5861`)) * `[jest-mock]` Extend .toHaveBeenCalled return message with outcome ([#​5951](`https://github.com/facebook/jest/pull/5951`)) * `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode ([#​5860](`https://github.com/facebook/jest/pull/5860`)) * `[jest-cli]` Add descriptive error message when trying to use `globalSetup`/`globalTeardown` file that doesn't export a function. ([#​5835](`https://github.com/facebook/jest/pull/5835`)) * `[expect]` Do not rely on `instanceof RegExp`, since it will not work for RegExps created inside of a different VM ([#​5729](`https://github.com/facebook/jest/pull/5729`)) * `[jest-resolve]` Update node module resolution algorithm to correctly handle symlinked paths ([#​5085](`https://github.com/facebook/jest/pull/5085`)) * `[jest-editor-support]` Update `Settings` to use spawn in shell option ([#​5658](`https://github.com/facebook/jest/pull/5658`)) * `[jest-cli]` Improve the error message when 2 projects resolve to the same config ([#​5674](`https://github.com/facebook/jest/pull/5674`)) * `[jest-runtime]` remove retainLines from coverage instrumentation ([#​5692](`https://github.com/facebook/jest/pull/5692`)) * `[jest-cli]` Fix update snapshot issue when using watchAll ([#​5696](`https://github.com/facebook/jest/pull/5696`)) * `[expect]` Fix rejects.not matcher ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[jest-runtime]` Prevent Babel warnings on large files ([#​5702](`https://github.com/facebook/jest/pull/5702`)) * `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection ([#​5720](`https://github.com/facebook/jest/pull/5720`)) * `[pretty-format]` Handle React fragments better ([#​5816](`https://github.com/facebook/jest/pull/5816`)) * `[pretty-format]` Handle formatting of `React.forwardRef` and `Context` components ([#​6093](`https://github.com/facebook/jest/pull/6093`)) * `[jest-cli]` Switch collectCoverageFrom back to a string ([#​5914](`https://github.com/facebook/jest/pull/5914`)) * `[jest-regex-util]` Fix handling regex symbols in tests path on Windows ([#​5941](`https://github.com/facebook/jest/pull/5941`)) * `[jest-util]` Fix handling of NaN/Infinity in mock timer delay ([#​5966](`https://github.com/facebook/jest/pull/5966`)) * `[jest-resolve]` Generalise test for package main entries equivalent to ".". ([#​5968](`https://github.com/facebook/jest/pull/5968`)) * `[jest-config]` Ensure that custom resolvers are used when resolving the configuration ([#​5976](`https://github.com/facebook/jest/pull/5976`)) * `[website]` Fix website docs ([#​5853](`https://github.com/facebook/jest/pull/5853`)) * `[expect]` Fix isEqual Set and Map to compare object values and keys regardless of order ([#​6150](`https://github.com/facebook/jest/pull/6150`)) * `[pretty-format]` [**BREAKING**] Remove undefined props from React elements ([#​6162](`https://github.com/facebook/jest/pull/6162`)) * `[jest-haste-map]` Properly resolve mocked node modules without package.json defined ([#​6232](`https://github.com/facebook/jest/pull/6232`)) ##### Chore & Maintenance * `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to `jest-runner` ([#​6176](`https://github.com/facebook/jest/pull/6176`)) * `[jest-cli]` Use yargs's built-in `version` instead of rolling our own ([#​6215](`https://github.com/facebook/jest/pull/6215`)) * `[docs]` Add explanation on how to mock methods not implemented in JSDOM * `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean resources for the top suite the same way as for all of the children suites ([#​5885](`https://github.com/facebook/jest/pull/5885`)) * `[babel-jest]` [**BREAKING**] Always return object from transformer ([#​5991](`https://github.com/facebook/jest/pull/5991`)) * `[*]` Run Prettier on compiled output ([#​5858](`https://github.com/facebook/jest/pull/3497`)) * `[jest-cli]` Add fileChange hook for plugins ([#​5708](`https://github.com/facebook/jest/pull/5708`)) * `[docs]` Add docs on using `jest.mock(...)` ([#​5648](`https://github.com/facebook/jest/pull/5648`)) * `[docs]` Mention Jest Puppeteer Preset ([#​5722](`https://github.com/facebook/jest/pull/5722`)) * `[docs]` Add jest-community section to website ([#​5675](`https://github.com/facebook/jest/pull/5675`)) * `[docs]` Add versioned docs for v22.4 ([##​5733](https://github.com/facebook/jest/pull/#​5733)) * `[docs]` Improve Snapshot Testing Guide ([#​5812](`https://github.com/facebook/jest/issues/5812`)) * `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and `jest.genMockFunction` ([#​6173](`https://github.com/facebook/jest/pull/6173`)) * `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack traces ([#​6211](`https://github.com/facebook/jest/pull/6211`)) --- </details> --- This PR has been generated by [Renovate Bot](https://renovatebot.com).
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `~22.4.0` to `~23.0.0` <details> <summary>Release Notes</summary> ### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#​2300) [Compare Source](jestjs/jest@2745e3e...v23.0.0) ##### Features * `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality` ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-snapshot]` Add snapshot property matchers ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-config]` Support jest-preset.js files within Node modules ([#​6185](`https://github.com/facebook/jest/pull/6185`)) * `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially track down handles keeping it open after tests are complete. ([#​6130](`https://github.com/facebook/jest/pull/6130`)) * `[jest-jasmine2]` Add data driven testing based on `jest-each` ([#​6102](`https://github.com/facebook/jest/pull/6102`)) * `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory ([#​6103](`https://github.com/facebook/jest/issues/6103`)) * `[jest-message-util]` Don't ignore messages with `vendor` anymore ([#​6117](`https://github.com/facebook/jest/pull/6117`)) * `[jest-validate]` Get rid of `jest-config` dependency ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-validate]` Adds option to inject `deprecationEntries` ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot name and count ([#​6015](`https://github.com/facebook/jest/pull/6015`)) * `[jest-runtime]` Allow for transform plugins to skip the definition process method if createTransformer method was defined. ([#​5999](`https://github.com/facebook/jest/pull/5999`)) * `[expect]` Add stack trace for async errors ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for timeouts ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for thrown non-`Error`s ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-runtime]` Prevent modules from marking themselves as their own parent ([#​5235](`https://github.com/facebook/jest/issues/5235`)) * `[jest-mock]` Add support for auto-mocking generator functions ([#​5983](`https://github.com/facebook/jest/pull/5983`)) * `[expect]` Add support for async matchers ([#​5919](`https://github.com/facebook/jest/pull/5919`)) * `[expect]` Suggest toContainEqual ([#​5948](`https://github.com/facebook/jest/pull/5953`)) * `[jest-config]` Export Jest's default options ([#​5948](`https://github.com/facebook/jest/pull/5948`)) * `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage` ([#​5929](`https://github.com/facebook/jest/pull/5929`)) * `[jest-editor-support]` Add `coverage` option to runner ([#​5836](`https://github.com/facebook/jest/pull/5836`)) * `[jest-haste-map]` Support extracting dynamic `import`s ([#​5883](`https://github.com/facebook/jest/pull/5883`)) * `[expect]` Improve output format for mismatchedArgs in mock/spy calls. ([#​5846](`https://github.com/facebook/jest/pull/5846`)) * `[jest-cli]` Add support for using `--coverage` in combination with watch mode, `--onlyChanged`, `--findRelatedTests` and more ([#​5601](`https://github.com/facebook/jest/pull/5601`)) * `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments ([#​5558](`https://github.com/facebook/jest/pull/5558`)) * `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function ([#​5512](`https://github.com/facebook/jest/pull/5512`)) * `[jest-config]` Add `<rootDir>` to runtime files not found error report ([#​5693](`https://github.com/facebook/jest/pull/5693`)) * `[expect]` Make toThrow matcher pass only if Error object is returned from promises ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add isError to utils ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc., [#​5517](`https://github.com/facebook/jest/pull/5517`)) * `[expect]` `expect.extend` now also extends asymmetric matchers ([#​5503](`https://github.com/facebook/jest/pull/5503`)) * `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain ([#​5753](`https://github.com/facebook/jest/pull/5753`)) * `[jest-mock]` Add tracking of return values in the `mock` property ([#​5752](`https://github.com/facebook/jest/pull/5752`)) * `[jest-mock]` Add tracking of thrown errors in the `mock` property ([#​5764](`https://github.com/facebook/jest/pull/5764`)) * `[expect]`Add nthCalledWith spy matcher ([#​5605](`https://github.com/facebook/jest/pull/5605`)) * `[jest-cli]` Add `isSerial` property that runners can expose to specify that they can not run in parallel ([#​5706](`https://github.com/facebook/jest/pull/5706`)) * `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases ([#​5826](`https://github.com/facebook/jest/pull/5826`)) * `[jest-cli]` Interactive Snapshot Mode improvements ([#​5864](`https://github.com/facebook/jest/pull/5864`)) * `[jest-editor-support]` Add `no-color` option to runner ([#​5909](`https://github.com/facebook/jest/pull/5909`)) * `[jest-jasmine2]` Pretty-print non-Error object errors ([#​5980](`https://github.com/facebook/jest/pull/5980`)) * `[jest-message-util]` Include column in stack frames ([#​5889](`https://github.com/facebook/jest/pull/5889`)) * `[expect]` Introduce toStrictEqual ([#​6032](`https://github.com/facebook/jest/pull/6032`)) * `[expect]` Add return matchers ([#​5879](`https://github.com/facebook/jest/pull/5879`)) * `[jest-cli]` Improve snapshot summaries ([#​6181](`https://github.com/facebook/jest/pull/6181`)) * `[expect]` Include custom mock names in error messages ([#​6199](`https://github.com/facebook/jest/pull/6199`)) * `[jest-diff]` Support returning diff from oneline strings ([#​6221](`https://github.com/facebook/jest/pull/6221`)) * `[expect]` Improve return matchers ([#​6172](`https://github.com/facebook/jest/pull/6172`)) * `[jest-cli]` Overhaul watch plugin hooks names ([#​6249](`https://github.com/facebook/jest/pull/6249`)) * `[jest-mock]` Include tracked call results in serialized mock ([#​6244](`https://github.com/facebook/jest/pull/6244`)) ##### Fixes * `[jest-cli]` Fix stdin encoding to utf8 for watch plugins. ([#​6253](`https://github.com/facebook/jest/issues/6253`)) * `[expect]` Better detection of DOM Nodes for equality ([#​6246](`https://github.com/facebook/jest/pull/6246`)) * `[jest-cli]` Fix misleading action description for F key when in "only failed tests" mode. ([#​6167](`https://github.com/facebook/jest/issues/6167`)) * `[jest-worker]` Stick calls to workers before processing them ([#​6073](`https://github.com/facebook/jest/pull/6073`)) * `[babel-plugin-jest-hoist]` Allow using `console` global variable ([#​6075](`https://github.com/facebook/jest/pull/6075`)) * `[jest-jasmine2]` Always remove node core message from assert stack traces ([#​6055](`https://github.com/facebook/jest/pull/6055`)) * `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions` causes test failures. ([#​5997](`https://github.com/facebook/jest/pull/5997`)) * `[jest-runtime]` Throw a more useful error when trying to require modules after the test environment is torn down ([#​5888](`https://github.com/facebook/jest/pull/5888`)) * `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder` ([#​5867](`https://github.com/facebook/jest/pull/5867`)) * `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch runtime errors ([#​5945](`https://github.com/facebook/jest/pull/5945`)) * `[jest-jasmine2]` Added assertion error handling inside `afterAll hook` ([#​5884](`https://github.com/facebook/jest/pull/5884`)) * `[jest-cli]` Remove the notifier actions in case of failure when not in watch mode. ([#​5861](`https://github.com/facebook/jest/pull/5861`)) * `[jest-mock]` Extend .toHaveBeenCalled return message with outcome ([#​5951](`https://github.com/facebook/jest/pull/5951`)) * `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode ([#​5860](`https://github.com/facebook/jest/pull/5860`)) * `[jest-cli]` Add descriptive error message when trying to use `globalSetup`/`globalTeardown` file that doesn't export a function. ([#​5835](`https://github.com/facebook/jest/pull/5835`)) * `[expect]` Do not rely on `instanceof RegExp`, since it will not work for RegExps created inside of a different VM ([#​5729](`https://github.com/facebook/jest/pull/5729`)) * `[jest-resolve]` Update node module resolution algorithm to correctly handle symlinked paths ([#​5085](`https://github.com/facebook/jest/pull/5085`)) * `[jest-editor-support]` Update `Settings` to use spawn in shell option ([#​5658](`https://github.com/facebook/jest/pull/5658`)) * `[jest-cli]` Improve the error message when 2 projects resolve to the same config ([#​5674](`https://github.com/facebook/jest/pull/5674`)) * `[jest-runtime]` remove retainLines from coverage instrumentation ([#​5692](`https://github.com/facebook/jest/pull/5692`)) * `[jest-cli]` Fix update snapshot issue when using watchAll ([#​5696](`https://github.com/facebook/jest/pull/5696`)) * `[expect]` Fix rejects.not matcher ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[jest-runtime]` Prevent Babel warnings on large files ([#​5702](`https://github.com/facebook/jest/pull/5702`)) * `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection ([#​5720](`https://github.com/facebook/jest/pull/5720`)) * `[pretty-format]` Handle React fragments better ([#​5816](`https://github.com/facebook/jest/pull/5816`)) * `[pretty-format]` Handle formatting of `React.forwardRef` and `Context` components ([#​6093](`https://github.com/facebook/jest/pull/6093`)) * `[jest-cli]` Switch collectCoverageFrom back to a string ([#​5914](`https://github.com/facebook/jest/pull/5914`)) * `[jest-regex-util]` Fix handling regex symbols in tests path on Windows ([#​5941](`https://github.com/facebook/jest/pull/5941`)) * `[jest-util]` Fix handling of NaN/Infinity in mock timer delay ([#​5966](`https://github.com/facebook/jest/pull/5966`)) * `[jest-resolve]` Generalise test for package main entries equivalent to ".". ([#​5968](`https://github.com/facebook/jest/pull/5968`)) * `[jest-config]` Ensure that custom resolvers are used when resolving the configuration ([#​5976](`https://github.com/facebook/jest/pull/5976`)) * `[website]` Fix website docs ([#​5853](`https://github.com/facebook/jest/pull/5853`)) * `[expect]` Fix isEqual Set and Map to compare object values and keys regardless of order ([#​6150](`https://github.com/facebook/jest/pull/6150`)) * `[pretty-format]` [**BREAKING**] Remove undefined props from React elements ([#​6162](`https://github.com/facebook/jest/pull/6162`)) * `[jest-haste-map]` Properly resolve mocked node modules without package.json defined ([#​6232](`https://github.com/facebook/jest/pull/6232`)) ##### Chore & Maintenance * `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to `jest-runner` ([#​6176](`https://github.com/facebook/jest/pull/6176`)) * `[jest-cli]` Use yargs's built-in `version` instead of rolling our own ([#​6215](`https://github.com/facebook/jest/pull/6215`)) * `[docs]` Add explanation on how to mock methods not implemented in JSDOM * `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean resources for the top suite the same way as for all of the children suites ([#​5885](`https://github.com/facebook/jest/pull/5885`)) * `[babel-jest]` [**BREAKING**] Always return object from transformer ([#​5991](`https://github.com/facebook/jest/pull/5991`)) * `[*]` Run Prettier on compiled output ([#​5858](`https://github.com/facebook/jest/pull/3497`)) * `[jest-cli]` Add fileChange hook for plugins ([#​5708](`https://github.com/facebook/jest/pull/5708`)) * `[docs]` Add docs on using `jest.mock(...)` ([#​5648](`https://github.com/facebook/jest/pull/5648`)) * `[docs]` Mention Jest Puppeteer Preset ([#​5722](`https://github.com/facebook/jest/pull/5722`)) * `[docs]` Add jest-community section to website ([#​5675](`https://github.com/facebook/jest/pull/5675`)) * `[docs]` Add versioned docs for v22.4 ([##​5733](https://github.com/facebook/jest/pull/#​5733)) * `[docs]` Improve Snapshot Testing Guide ([#​5812](`https://github.com/facebook/jest/issues/5812`)) * `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and `jest.genMockFunction` ([#​6173](`https://github.com/facebook/jest/pull/6173`)) * `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack traces ([#​6211](`https://github.com/facebook/jest/pull/6211`)) --- </details> --- This PR has been generated by [Renovate Bot](https://renovatebot.com).
This Pull Request updates dependency [jest](https://github.com/facebook/jest) from `v22.4.3` to `v23.0.1` <details> <summary>Release Notes</summary> ### [`v23.0.1`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#​2301) [Compare Source](jestjs/jest@v23.0.0...3a3b4e3) ##### Chore & Maintenance * `[jest-jasemine2]` Add dependency on jest-each ([#​6308](`https://github.com/facebook/jest/pull/6308`)) * `[jest-each]` Move jest-each into core Jest ([#​6278](`https://github.com/facebook/jest/pull/6278`)) * `[examples]` Update typescript example to using ts-jest ([#​6260](`https://github.com/facebook/jest/pull/6260`)) ##### Fixes * `[pretty-format]` Serialize inverse asymmetric matchers correctly ([#​6272](`https://github.com/facebook/jest/pull/6272`)) --- ### [`v23.0.0`](https://github.com/facebook/jest/blob/master/CHANGELOG.md#​2300) [Compare Source](jestjs/jest@2745e3e...v23.0.0) ##### Features * `[expect]` Expose `getObjectSubset`, `iterableEquality`, and `subsetEquality` ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-snapshot]` Add snapshot property matchers ([#​6210](`https://github.com/facebook/jest/pull/6210`)) * `[jest-config]` Support jest-preset.js files within Node modules ([#​6185](`https://github.com/facebook/jest/pull/6185`)) * `[jest-cli]` Add `--detectOpenHandles` flag which enables Jest to potentially track down handles keeping it open after tests are complete. ([#​6130](`https://github.com/facebook/jest/pull/6130`)) * `[jest-jasmine2]` Add data driven testing based on `jest-each` ([#​6102](`https://github.com/facebook/jest/pull/6102`)) * `[jest-matcher-utils]` Change "suggest to equal" message to be more advisory ([#​6103](`https://github.com/facebook/jest/issues/6103`)) * `[jest-message-util]` Don't ignore messages with `vendor` anymore ([#​6117](`https://github.com/facebook/jest/pull/6117`)) * `[jest-validate]` Get rid of `jest-config` dependency ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-validate]` Adds option to inject `deprecationEntries` ([#​6067](`https://github.com/facebook/jest/pull/6067`)) * `[jest-snapshot]` [**BREAKING**] Concatenate name of test, optional snapshot name and count ([#​6015](`https://github.com/facebook/jest/pull/6015`)) * `[jest-runtime]` Allow for transform plugins to skip the definition process method if createTransformer method was defined. ([#​5999](`https://github.com/facebook/jest/pull/5999`)) * `[expect]` Add stack trace for async errors ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for timeouts ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-jasmine2]` Add stack trace for thrown non-`Error`s ([#​6008](`https://github.com/facebook/jest/pull/6008`)) * `[jest-runtime]` Prevent modules from marking themselves as their own parent ([#​5235](`https://github.com/facebook/jest/issues/5235`)) * `[jest-mock]` Add support for auto-mocking generator functions ([#​5983](`https://github.com/facebook/jest/pull/5983`)) * `[expect]` Add support for async matchers ([#​5919](`https://github.com/facebook/jest/pull/5919`)) * `[expect]` Suggest toContainEqual ([#​5948](`https://github.com/facebook/jest/pull/5953`)) * `[jest-config]` Export Jest's default options ([#​5948](`https://github.com/facebook/jest/pull/5948`)) * `[jest-editor-support]` Move `coverage` to `ProjectWorkspace.collectCoverage` ([#​5929](`https://github.com/facebook/jest/pull/5929`)) * `[jest-editor-support]` Add `coverage` option to runner ([#​5836](`https://github.com/facebook/jest/pull/5836`)) * `[jest-haste-map]` Support extracting dynamic `import`s ([#​5883](`https://github.com/facebook/jest/pull/5883`)) * `[expect]` Improve output format for mismatchedArgs in mock/spy calls. ([#​5846](`https://github.com/facebook/jest/pull/5846`)) * `[jest-cli]` Add support for using `--coverage` in combination with watch mode, `--onlyChanged`, `--findRelatedTests` and more ([#​5601](`https://github.com/facebook/jest/pull/5601`)) * `[jest-jasmine2]` [**BREAKING**] Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments. `[jest-circus]` Adds error throwing and descriptive errors to `it`/ `test` for invalid arguments ([#​5558](`https://github.com/facebook/jest/pull/5558`)) * `[jest-matcher-utils]` Add `isNot` option to `matcherHint` function ([#​5512](`https://github.com/facebook/jest/pull/5512`)) * `[jest-config]` Add `<rootDir>` to runtime files not found error report ([#​5693](`https://github.com/facebook/jest/pull/5693`)) * `[expect]` Make toThrow matcher pass only if Error object is returned from promises ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add isError to utils ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[expect]` Add inverse matchers (`expect.not.arrayContaining`, etc., [#​5517](`https://github.com/facebook/jest/pull/5517`)) * `[expect]` `expect.extend` now also extends asymmetric matchers ([#​5503](`https://github.com/facebook/jest/pull/5503`)) * `[jest-mock]` Update `spyOnProperty` to support spying on the prototype chain ([#​5753](`https://github.com/facebook/jest/pull/5753`)) * `[jest-mock]` Add tracking of return values in the `mock` property ([#​5752](`https://github.com/facebook/jest/pull/5752`)) * `[jest-mock]` Add tracking of thrown errors in the `mock` property ([#​5764](`https://github.com/facebook/jest/pull/5764`)) * `[expect]`Add nthCalledWith spy matcher ([#​5605](`https://github.com/facebook/jest/pull/5605`)) * `[jest-cli]` Add `isSerial` property that runners can expose to specify that they can not run in parallel ([#​5706](`https://github.com/facebook/jest/pull/5706`)) * `[expect]` Add `.toBeCalledTimes` and `toHaveBeenNthCalledWith` aliases ([#​5826](`https://github.com/facebook/jest/pull/5826`)) * `[jest-cli]` Interactive Snapshot Mode improvements ([#​5864](`https://github.com/facebook/jest/pull/5864`)) * `[jest-editor-support]` Add `no-color` option to runner ([#​5909](`https://github.com/facebook/jest/pull/5909`)) * `[jest-jasmine2]` Pretty-print non-Error object errors ([#​5980](`https://github.com/facebook/jest/pull/5980`)) * `[jest-message-util]` Include column in stack frames ([#​5889](`https://github.com/facebook/jest/pull/5889`)) * `[expect]` Introduce toStrictEqual ([#​6032](`https://github.com/facebook/jest/pull/6032`)) * `[expect]` Add return matchers ([#​5879](`https://github.com/facebook/jest/pull/5879`)) * `[jest-cli]` Improve snapshot summaries ([#​6181](`https://github.com/facebook/jest/pull/6181`)) * `[expect]` Include custom mock names in error messages ([#​6199](`https://github.com/facebook/jest/pull/6199`)) * `[jest-diff]` Support returning diff from oneline strings ([#​6221](`https://github.com/facebook/jest/pull/6221`)) * `[expect]` Improve return matchers ([#​6172](`https://github.com/facebook/jest/pull/6172`)) * `[jest-cli]` Overhaul watch plugin hooks names ([#​6249](`https://github.com/facebook/jest/pull/6249`)) * `[jest-mock]` Include tracked call results in serialized mock ([#​6244](`https://github.com/facebook/jest/pull/6244`)) ##### Fixes * `[jest-cli]` Fix stdin encoding to utf8 for watch plugins. ([#​6253](`https://github.com/facebook/jest/issues/6253`)) * `[expect]` Better detection of DOM Nodes for equality ([#​6246](`https://github.com/facebook/jest/pull/6246`)) * `[jest-cli]` Fix misleading action description for F key when in "only failed tests" mode. ([#​6167](`https://github.com/facebook/jest/issues/6167`)) * `[jest-worker]` Stick calls to workers before processing them ([#​6073](`https://github.com/facebook/jest/pull/6073`)) * `[babel-plugin-jest-hoist]` Allow using `console` global variable ([#​6075](`https://github.com/facebook/jest/pull/6075`)) * `[jest-jasmine2]` Always remove node core message from assert stack traces ([#​6055](`https://github.com/facebook/jest/pull/6055`)) * `[expect]` Add stack trace when `expect.assertions` and `expect.hasAssertions` causes test failures. ([#​5997](`https://github.com/facebook/jest/pull/5997`)) * `[jest-runtime]` Throw a more useful error when trying to require modules after the test environment is torn down ([#​5888](`https://github.com/facebook/jest/pull/5888`)) * `[jest-mock]` [**BREAKING**] Replace timestamps with `invocationCallOrder` ([#​5867](`https://github.com/facebook/jest/pull/5867`)) * `[jest-jasmine2]` Install `sourcemap-support` into normal runtime to catch runtime errors ([#​5945](`https://github.com/facebook/jest/pull/5945`)) * `[jest-jasmine2]` Added assertion error handling inside `afterAll hook` ([#​5884](`https://github.com/facebook/jest/pull/5884`)) * `[jest-cli]` Remove the notifier actions in case of failure when not in watch mode. ([#​5861](`https://github.com/facebook/jest/pull/5861`)) * `[jest-mock]` Extend .toHaveBeenCalled return message with outcome ([#​5951](`https://github.com/facebook/jest/pull/5951`)) * `[jest-runner]` Assign `process.env.JEST_WORKER_ID="1"` when in runInBand mode ([#​5860](`https://github.com/facebook/jest/pull/5860`)) * `[jest-cli]` Add descriptive error message when trying to use `globalSetup`/`globalTeardown` file that doesn't export a function. ([#​5835](`https://github.com/facebook/jest/pull/5835`)) * `[expect]` Do not rely on `instanceof RegExp`, since it will not work for RegExps created inside of a different VM ([#​5729](`https://github.com/facebook/jest/pull/5729`)) * `[jest-resolve]` Update node module resolution algorithm to correctly handle symlinked paths ([#​5085](`https://github.com/facebook/jest/pull/5085`)) * `[jest-editor-support]` Update `Settings` to use spawn in shell option ([#​5658](`https://github.com/facebook/jest/pull/5658`)) * `[jest-cli]` Improve the error message when 2 projects resolve to the same config ([#​5674](`https://github.com/facebook/jest/pull/5674`)) * `[jest-runtime]` remove retainLines from coverage instrumentation ([#​5692](`https://github.com/facebook/jest/pull/5692`)) * `[jest-cli]` Fix update snapshot issue when using watchAll ([#​5696](`https://github.com/facebook/jest/pull/5696`)) * `[expect]` Fix rejects.not matcher ([#​5670](`https://github.com/facebook/jest/pull/5670`)) * `[jest-runtime]` Prevent Babel warnings on large files ([#​5702](`https://github.com/facebook/jest/pull/5702`)) * `[jest-mock]` Prevent `mockRejectedValue` from causing unhandled rejection ([#​5720](`https://github.com/facebook/jest/pull/5720`)) * `[pretty-format]` Handle React fragments better ([#​5816](`https://github.com/facebook/jest/pull/5816`)) * `[pretty-format]` Handle formatting of `React.forwardRef` and `Context` components ([#​6093](`https://github.com/facebook/jest/pull/6093`)) * `[jest-cli]` Switch collectCoverageFrom back to a string ([#​5914](`https://github.com/facebook/jest/pull/5914`)) * `[jest-regex-util]` Fix handling regex symbols in tests path on Windows ([#​5941](`https://github.com/facebook/jest/pull/5941`)) * `[jest-util]` Fix handling of NaN/Infinity in mock timer delay ([#​5966](`https://github.com/facebook/jest/pull/5966`)) * `[jest-resolve]` Generalise test for package main entries equivalent to ".". ([#​5968](`https://github.com/facebook/jest/pull/5968`)) * `[jest-config]` Ensure that custom resolvers are used when resolving the configuration ([#​5976](`https://github.com/facebook/jest/pull/5976`)) * `[website]` Fix website docs ([#​5853](`https://github.com/facebook/jest/pull/5853`)) * `[expect]` Fix isEqual Set and Map to compare object values and keys regardless of order ([#​6150](`https://github.com/facebook/jest/pull/6150`)) * `[pretty-format]` [**BREAKING**] Remove undefined props from React elements ([#​6162](`https://github.com/facebook/jest/pull/6162`)) * `[jest-haste-map]` Properly resolve mocked node modules without package.json defined ([#​6232](`https://github.com/facebook/jest/pull/6232`)) ##### Chore & Maintenance * `[jest-runner]` Move sourcemap installation from `jest-jasmine2` to `jest-runner` ([#​6176](`https://github.com/facebook/jest/pull/6176`)) * `[jest-cli]` Use yargs's built-in `version` instead of rolling our own ([#​6215](`https://github.com/facebook/jest/pull/6215`)) * `[docs]` Add explanation on how to mock methods not implemented in JSDOM * `[jest-jasmine2]` Simplify `Env.execute` and TreeProcessor to setup and clean resources for the top suite the same way as for all of the children suites ([#​5885](`https://github.com/facebook/jest/pull/5885`)) * `[babel-jest]` [**BREAKING**] Always return object from transformer ([#​5991](`https://github.com/facebook/jest/pull/5991`)) * `[*]` Run Prettier on compiled output ([#​5858](`https://github.com/facebook/jest/pull/3497`)) * `[jest-cli]` Add fileChange hook for plugins ([#​5708](`https://github.com/facebook/jest/pull/5708`)) * `[docs]` Add docs on using `jest.mock(...)` ([#​5648](`https://github.com/facebook/jest/pull/5648`)) * `[docs]` Mention Jest Puppeteer Preset ([#​5722](`https://github.com/facebook/jest/pull/5722`)) * `[docs]` Add jest-community section to website ([#​5675](`https://github.com/facebook/jest/pull/5675`)) * `[docs]` Add versioned docs for v22.4 ([#​5733](`https://github.com/facebook/jest/pull/5733`)) * `[docs]` Improve Snapshot Testing Guide ([#​5812](`https://github.com/facebook/jest/issues/5812`)) * `[jest-runtime]` [**BREAKING**] Remove `jest.genMockFn` and `jest.genMockFunction` ([#​6173](`https://github.com/facebook/jest/pull/6173`)) * `[jest-message-util]` Avoid adding unnecessary indent to blank lines in stack traces ([#​6211](`https://github.com/facebook/jest/pull/6211`)) --- ### [`v22.4.4`](jestjs/jest@6851d8b...v22.4.4) [Compare Source](jestjs/jest@6851d8b...v22.4.4) --- </details> --- This PR has been generated by [Renovate Bot](https://renovatebot.com).
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
Tracking down why Jest fails to exit at the end of a test run is a pain. Using tools like
why-is-node-running
is possible, but it requires some setup, and returns a ton of false positives. Baking it directly into Jest allows us to perform filtering on the output, to make sure only the relevant pieces are shown to the user.This filtering is in this PR implemented as "does
this._execModule(
exist in the trace". This basically means a module executed byjest-runtime
, but not Jest internals.The following file will keep Jest running forever, because the server is never closed down:
With this PR, Jest will have the following output:
I added the data to
testResults
so other tooling should be able to report it as they wish as well.EDIT: With some colors and relative paths:
Test plan
I haven't added any tests yet, as I'd like to get some feedback that this is acceptable before spending more time on it.