facebook/jest
### [`v24.0.0`](https://togithub.com/facebook/jest/blob/master/CHANGELOG.md#2400)
[Compare Source](https://togithub.com/facebook/jest/compare/v23.6.0...v24.0.0)
##### Features
- `[jest-each]` [**BREAKING**] Add primitive pretty printing for interpolated titles ([#7694](https://togithub.com/facebook/jest/pull/7694))
- `[jest-runtime]` Add `jest.isolateModules` for scoped module initialization ([#6701](https://togithub.com/facebook/jest/pull/6701))
- `[jest-diff]` [**BREAKING**] Support diffing numbers and booleans instead of returning null for different ones ([#7605](https://togithub.com/facebook/jest/pull/7605))
- `[jest-diff]` [**BREAKING**] Replace `diff` with `diff-sequences` package ([#6961](https://togithub.com/facebook/jest/pull/6961))
- `[jest-cli]` [**BREAKING**] Only set error process error codes when they are non-zero ([#7363](https://togithub.com/facebook/jest/pull/7363))
- `[jest-config]` [**BREAKING**] Deprecate `setupTestFrameworkScriptFile` in favor of new `setupFilesAfterEnv` ([#7119](https://togithub.com/facebook/jest/pull/7119))
- `[jest-worker]` [**BREAKING**] Add functionality to call a `setup` method in the worker before the first call and a `teardown` method when ending the farm ([#7014](https://togithub.com/facebook/jest/pull/7014))
- `[jest-config]` [**BREAKING**] Set default `notifyMode` to `failure-change` ([#7024](https://togithub.com/facebook/jest/pull/7024))
- `[jest-haste-map]` [**BREAKING**] Remove support for `@providesModule` ([#6104](https://togithub.com/facebook/jest/pull/6104))
- `[jest-haste-map]` [**BREAKING**] Replace internal data structures to improve performance ([#6960](https://togithub.com/facebook/jest/pull/6960))
- `[jest-haste-map]` [**BREAKING**] Use relative paths to allow remote caching ([#7020](https://togithub.com/facebook/jest/pull/7020))
- `[jest-haste-map]` [**BREAKING**] Remove name from hash in `HasteMap.getCacheFilePath` ([#7218](https://togithub.com/facebook/jest/pull/7218))
- `[babel-preset-jest]` [**BREAKING**] Export a function instead of an object for Babel 7 compatibility ([#7203](https://togithub.com/facebook/jest/pull/7203))
- `[jest-haste-map]` [**BREAKING**] Expose relative paths when getting the file iterator ([#7321](https://togithub.com/facebook/jest/pull/7321))
- `[jest-cli]` [**BREAKING**] Run code transforms over `global{Setup,Teardown}` ([#7562](https://togithub.com/facebook/jest/pull/7562))
- `[jest-haste-map]` Add `hasteFS.getSize(path)` ([#7580](https://togithub.com/facebook/jest/pull/7580))
- `[jest-cli]` Print version ending in `-dev` when running a local Jest clone ([#7582](https://togithub.com/facebook/jest/pull/7582))
- `[jest-cli]` Add Support for `globalSetup` and `globalTeardown` in projects ([#6865](https://togithub.com/facebook/jest/pull/6865))
- `[jest-runtime]` Add `extraGlobals` to config to load extra global variables into the execution vm ([#7454](https://togithub.com/facebook/jest/pull/7454))
- `[jest-util]` Export `specialChars` containing Unicode characters and ANSI escapes for console output ([#7532](https://togithub.com/facebook/jest/pull/7532))
- `[jest-config]` Handle typescript (`ts` and `tsx`) by default ([#7533](https://togithub.com/facebook/jest/pull/7533))
- `[jest-validate]` Add support for comments in `package.json` using a `"//"` key ([#7295](https://togithub.com/facebook/jest/pull/7295))
- `[jest-config]` Add shorthand for watch plugins and runners ([#7213](https://togithub.com/facebook/jest/pull/7213))
- `[jest-jasmine2/jest-circus/jest-cli]` Add test.todo ([#6996](https://togithub.com/facebook/jest/pull/6996))
- `[pretty-format]` Option to not escape strings in diff messages ([#5661](https://togithub.com/facebook/jest/pull/5661))
- `[jest-haste-map]` Add `getFileIterator` to `HasteFS` for faster file iteration ([#7010](https://togithub.com/facebook/jest/pull/7010))
- `[jest-config]` Add `readConfigs` function, previously in `jest-cli` ([#7096](https://togithub.com/facebook/jest/pull/7096))
- `[jest-snapshot]` Enable configurable snapshot paths ([#6143](https://togithub.com/facebook/jest/pull/6143))
- `[pretty-format]` Support HTMLCollection and NodeList in DOMCollection plugin ([#7125](https://togithub.com/facebook/jest/pull/7125))
- `[jest-runtime]` Pass the normalized configuration to script transformers ([#7148](https://togithub.com/facebook/jest/pull/7148))
- `[expect]` Improve report when assertion fails, part 3 ([#7152](https://togithub.com/facebook/jest/pull/7152))
- `[jest-runtime]` If `require` fails without a file extension, print all files that match with one ([#7160](https://togithub.com/facebook/jest/pull/7160))
- `[jest-haste-map]` Make `ignorePattern` optional ([#7166](https://togithub.com/facebook/jest/pull/7166))
- `[jest-haste-map]` Add `getCacheFilePath` to get the path to the cache file for a `HasteMap` instance ([#7217](https://togithub.com/facebook/jest/pull/7217))
- `[jest-runtime]` Remove `cacheDirectory` from `ignorePattern` for `HasteMap` if not necessary ([#7166](https://togithub.com/facebook/jest/pull/7166))
- `[jest-validate]` Add syntax to validate multiple permitted types ([#7207](https://togithub.com/facebook/jest/pull/7207))
- `[jest-config]` Accept an array as as well as a string for `testRegex`([#7209][#7209](https://togithub.com/facebook/jest/pull/7209)))
- `[expect/jest-matcher-utils]` Improve report when assertion fails, part 4 ([#7241](https://togithub.com/facebook/jest/pull/7241))
- `[expect/jest-matcher-utils]` Improve report when assertion fails, part 5 ([#7557](https://togithub.com/facebook/jest/pull/7557))
- `[expect]` Check constructor equality in .toStrictEqual() ([#7005](https://togithub.com/facebook/jest/pull/7005))
- `[jest-util]` Add `jest.getTimerCount()` to get the count of scheduled fake timers ([#7285](https://togithub.com/facebook/jest/pull/7285))
- `[jest-config]` Add `dependencyExtractor` option to use a custom module to extract dependencies from files ([#7313](https://togithub.com/facebook/jest/pull/7313), [#7349](https://togithub.com/facebook/jest/pull/7349), [#7350](https://togithub.com/facebook/jest/pull/7350), [#7362](https://togithub.com/facebook/jest/pull/7362))
- `[jest-haste-map]` Accept a `getCacheKey` method in `hasteImplModulePath` modules to reset the cache when the logic changes ([#7350](https://togithub.com/facebook/jest/pull/7350))
- `[jest-config]` Add `haste.computeSha1` option to compute the sha-1 of the files in the haste map ([#7345](https://togithub.com/facebook/jest/pull/7345))
- `[expect]` `expect(Infinity).toBeCloseTo(Infinity)` Treats `Infinity` as equal in toBeCloseTo matcher ([#7405](https://togithub.com/facebook/jest/pull/7405))
- `[jest-worker]` Add node worker-thread support to jest-worker ([#7408](https://togithub.com/facebook/jest/pull/7408))
- `[jest-config]` Allow `bail` setting to be configured with a number allowing tests to abort after `n` of failures ([#7335](https://togithub.com/facebook/jest/pull/7335))
- `[jest-config]` Allow % based configuration of `--max-workers` ([#7494](https://togithub.com/facebook/jest/pull/7494))
- `[jest-runner]` Instantiate the test environment class with the current `testPath` ([#7442](https://togithub.com/facebook/jest/pull/7442))
- `[jest-config]` Always resolve jest-environment-jsdom from jest-config ([#7476](https://togithub.com/facebook/jest/pull/7476))
- `[expect]` Improve report when assertion fails, part 6 ([#7621](https://togithub.com/facebook/jest/pull/7621))
- `[jest-worker]` Add `enableWorkerThreads` option to explicitly opt-in to `worker_threads` if available ([#7681](https://togithub.com/facebook/jest/pull/7681))
##### Fixes
- `[expect]` Accept inherited properties in `toHaveProperty` matcher ([#7686](https://togithub.com/facebook/jest/pull/7686))
- `[jest-diff]` Do not claim that `-0` and `0` have no visual difference ([#7605](https://togithub.com/facebook/jest/pull/7605))
- `[jest-mock]` Fix automock for numeric function names ([#7653](https://togithub.com/facebook/jest/pull/7653))
- `[jest-config]` Ensure `existsSync` is only called with a string parameter ([#7607](https://togithub.com/facebook/jest/pull/7607))
- `[expect]` `toStrictEqual` considers sparseness of arrays. ([#7591](https://togithub.com/facebook/jest/pull/7591))
- `[jest-cli]` Fix empty coverage data for untested files ([#7388](https://togithub.com/facebook/jest/pull/7388))
- `[jest-cli]` [**BREAKING**] Do not use `text-summary` coverage reporter by default if other reporters are configured ([#7058](https://togithub.com/facebook/jest/pull/7058))
- `[jest-mock]` [**BREAKING**] Fix bugs with mock/spy result tracking of recursive functions ([#6381](https://togithub.com/facebook/jest/pull/6381))
- `[jest-haste-map]` [**BREAKING**] Recover files correctly after haste name collisions are fixed ([#7329](https://togithub.com/facebook/jest/pull/7329))
- `[pretty-format]` [**BREAKING**] Omit non-enumerable symbol properties ([#7448](https://togithub.com/facebook/jest/pull/7448))
- `[*]` [**BREAKING**] Upgrade to Babel 7, dropping support for Babel 6 ([#7016](https://togithub.com/facebook/jest/pull/7016))
- `[jest-cli]` Avoid watch mode causing bad terminal behavior in some cases ([#7523](https://togithub.com/facebook/jest/pull/7523))
- `[jest-runner/jest-worker]` Fix missing console output in verbose mode ([#6871](https://togithub.com/facebook/jest/pull/6871))
- `[expect]` Standardize file naming in `expect` ([#7306](https://togithub.com/facebook/jest/pull/7306))
- `[jest-each]` Add empty array validation check ([#7249](https://togithub.com/facebook/jest/pull/7249))
- `[jest-cli]` Interrupt tests if interactive watch plugin key is pressed ([#7222](https://togithub.com/facebook/jest/pull/7222))
- `[jest-each]` Add each array validation check ([#7033](https://togithub.com/facebook/jest/pull/7033))
- `[jest-haste-map]` Do not visit again files with the same sha-1 ([#6990](https://togithub.com/facebook/jest/pull/6990))
- `[jest-jasmine2]` Fix memory leak in Error objects hold by the framework ([#6965](https://togithub.com/facebook/jest/pull/6965))
- `[jest-haste-map]` Fixed Haste whitelist generation for scoped modules on Windows ([#6980](https://togithub.com/facebook/jest/pull/6980))
- `[jest-mock]` Fix inheritance of static properties and methods in mocks ([#7003](https://togithub.com/facebook/jest/pull/7003))
- `[jest-mock]` Fix mocking objects without `Object.prototype` in their prototype chain ([#7003](https://togithub.com/facebook/jest/pull/7003))
- `[jest-mock]` Check `_isMockFunction` is true rather than truthy on potential mocks ([#7017](https://togithub.com/facebook/jest/pull/7017))
- `[jest-cli]` Update jest-cli to show git ref in message when using `changedSince` ([#7028](https://togithub.com/facebook/jest/pull/7028))
- `[jest-jasmine2`] Fix crash when test return Promise rejected with null ([#7049](https://togithub.com/facebook/jest/pull/7049))
- `[jest-runtime]` Check `_isMockFunction` is true rather than truthy on potential global mocks ([#7017](https://togithub.com/facebook/jest/pull/7017))
- `[jest-jasmine]` Show proper error message from async `assert` errors ([#6821](https://togithub.com/facebook/jest/pull/6821))
- `[jest-jasmine2]` Better error message when a describe block is empty ([#6372](https://togithub.com/facebook/jest/pull/6372))
- `[jest-jasmine2]` Pending calls inside async tests are reported as pending not failed ([#6782](https://togithub.com/facebook/jest/pull/6782))
- `[jest-circus]` Better error message when a describe block is empty ([#6372](https://togithub.com/facebook/jest/pull/6372))
- `[jest-jasmine2]` Add missing testLocationResults for `xit` and `fit`([#6482](https://togithub.com/facebook/jest/pull/6482))
- `[expect]` Return false from asymmetric matchers if received value isn’t string ([#7107](https://togithub.com/facebook/jest/pull/7107))
- `[jest-cli]` Fix unhandled error when a bad revision is provided to `changedSince` ([#7115](https://togithub.com/facebook/jest/pull/7115))
- `[jest-config]` Moved dynamically assigned `cwd` from `jest-cli` to default configuration in `jest-config` ([#7146](https://togithub.com/facebook/jest/pull/7146))
- `[jest-config]` Fix `getMaxWorkers` on termux ([#7154](https://togithub.com/facebook/jest/pull/7154))
- `[jest-runtime]` Throw an explicit error if `js` is missing from `moduleFileExtensions` ([#7160](https://togithub.com/facebook/jest/pull/7160))
- `[jest-runtime]` Fix missing coverage when using negative glob pattern in `testMatch` ([#7170](https://togithub.com/facebook/jest/pull/7170))
- `[*]` Ensure `maxWorkers` is at least 1 (was 0 in some cases where there was only 1 CPU) ([#7182](https://togithub.com/facebook/jest/pull/7182))
- `[jest-runtime]` Fix transform cache invalidation when requiring a test file from multiple projects ([#7186](https://togithub.com/facebook/jest/pull/7186))
- `[jest-changed-files]` Return correctly the changed files when using `lastCommit=true` on Mercurial repositories ([#7228](https://togithub.com/facebook/jest/pull/7228))
- `[babel-jest]` Cache includes babel environment variables ([#7239](https://togithub.com/facebook/jest/pull/7239))
- `[jest-config]` Use strings instead of `RegExp` instances in normalized configuration ([#7251](https://togithub.com/facebook/jest/pull/7251))
- `[jest-circus]` Make sure to display real duration even if time is mocked ([#7264](https://togithub.com/facebook/jest/pull/7264))
- `[expect]` Improves the failing message for `toStrictEqual` matcher. ([#7224](https://togithub.com/facebook/jest/pull/7224))
- `[expect]` Improves the failing message for `toEqual` matcher. ([#7325](https://togithub.com/facebook/jest/pull/7325))
- `[jest-resolve]` Fix not being able to resolve path to mapped file with custom platform ([#7312](https://togithub.com/facebook/jest/pull/7312))
- `[jest-message-util]` Improve parsing of error messages for unusually formatted stack traces ([#7319](https://togithub.com/facebook/jest/pull/7319))
- `[jest-runtime]` Ensure error message text is not lost on errors with code frames ([#7319](https://togithub.com/facebook/jest/pull/7319))
- `[jest-haste-map]` Fix to resolve path that is start with words same as rootDir ([#7324](https://togithub.com/facebook/jest/pull/7324))
- `[expect]` Fix toMatchObject matcher when used with `Object.create(null)` ([#7334](https://togithub.com/facebook/jest/pull/7334))
- `[jest-haste-map]` Remove legacy condition for duplicate module detection ([#7333](https://togithub.com/facebook/jest/pull/7333))
- `[jest-haste-map]` Fix `require` detection with trailing commas and ignore `import typeof` modules ([#7385](https://togithub.com/facebook/jest/pull/7385))
- `[jest-cli]` Fix to set prettierPath via config file ([#7412](https://togithub.com/facebook/jest/pull/7412))
- `[expect]` Test more precisely for class instance getters ([#7477](https://togithub.com/facebook/jest/pull/7477))
- `[jest-cli]` Support dashed args ([#7497](https://togithub.com/facebook/jest/pull/7497))
- `[jest-cli]` Fix to run in band tests if watch mode enable when runInBand arg used ([#7518](https://togithub.com/facebook/jest/pull/7518))
- `[jest-runtime]` Fix mistake as test files when run coverage issue. ([#7506](https://togithub.com/facebook/jest/pull/7506))
- `[jest-cli]` print info about passWithNoTests flag ([#7309](https://togithub.com/facebook/jest/pull/7309))
- `[pretty-format]` Omit unnecessary symbol filter for object keys ([#7457](https://togithub.com/facebook/jest/pull/7457))
- `[jest-runtime]` Fix `requireActual` on node_modules with mock present ([#7404](https://togithub.com/facebook/jest/pull/7404))
- `[jest-resolve]` Fix `isBuiltinModule` to support versions of node without `module.builtinModules` ([#7565](https://togithub.com/facebook/jest/pull/7565))
- `[babel-jest]` Set `cwd` to be resilient to it changing during the runtime of the tests ([#7574](https://togithub.com/facebook/jest/pull/7574))
- `[jest-snapshot]` Write and read snapshots from disk even if `fs` is mocked ([#7080](https://togithub.com/facebook/jest/pull/7080))
- `[jest-config]` Normalize `config.cwd` and `config.rootDir` using \`realpath ([#7598](https://togithub.com/facebook/jest/pull/7598))
- `[jest-environment-node]` Fix buffer property is not ArrayBuffer issue. ([#7626](https://togithub.com/facebook/jest/pull/7626))
- `[babel-plugin-jest-hoist]` Ignore TS type annotations when looking for out-of-scope references ([#7641](https://togithub.com/facebook/jest/pull/7641))
- `[jest-config]` Add name to project if one does not exist to pick correct resolver ([#5862](https://togithub.com/facebook/jest/pull/5862))
- `[jest-runtime]` Pass `watchPathIgnorePatterns` to Haste instance ([#7585](https://togithub.com/facebook/jest/pull/7585))
- `[jest-runtime]` Resolve mock files via Haste when using `require.resolve` ([#7687](https://togithub.com/facebook/jest/pull/7687))
##### Chore & Maintenance
- `[*]` [**BREAKING**] Require Node.js 6+ for all packages ([#7258](https://togithub.com/facebook/jest/pull/7258))
- `[jest-util]` [**BREAKING**] Remove long-deprecated globals for fake timers ([#7285](https://togithub.com/facebook/jest/pull/7285))
- `[*]` [**BREAKING**] Upgrade to Micromatch 3 ([#6650](https://togithub.com/facebook/jest/pull/6650))
- `[*]` [**BREAKING**] Remove regenerator-runtime injection ([#7595](https://togithub.com/facebook/jest/pull/7595))
- `[jest-worker]` Disable `worker_threads` to avoid issues with libraries to ready for it ([#7681](https://togithub.com/facebook/jest/pull/7681))
- `[docs]` Fix message property in custom matcher example to return a function instead of a constant. ([#7426](https://togithub.com/facebook/jest/pull/7426))
- `[jest-circus]` Standardize file naming in `jest-circus` ([#7301](https://togithub.com/facebook/jest/pull/7301))
- `[docs]` Add synchronous test.each setup ([#7150](https://togithub.com/facebook/jest/pull/7150))
- `[docs]` Add `this.extend` to the Custom Matchers API reference ([#7130](https://togithub.com/facebook/jest/pull/7130))
- `[docs]` Fix default value for `coverageReporters` value in configuration docs ([#7126](https://togithub.com/facebook/jest/pull/7126))
- `[docs]` Add link for jest-extended in expect docs ([#7078](https://togithub.com/facebook/jest/pull/7078))
- `[jest-util]` Add ErrorWithStack class ([#7067](https://togithub.com/facebook/jest/pull/7067))
- `[docs]` Document `--runTestsByPath` CLI parameter ([#7046](https://togithub.com/facebook/jest/pull/7046))
- `[docs]` Fix babel-core installation instructions ([#6745](https://togithub.com/facebook/jest/pull/6745))
- `[docs]` Explain how to rewrite assertions to avoid large irrelevant diff ([#6971](https://togithub.com/facebook/jest/pull/6971))
- `[examples]` add example using Babel 7 ([#6983](https://togithub.com/facebook/jest/pull/6983))
- `[docs]` Replace shallow equality with referential identity in `ExpectAPI.md` ([#6991](https://togithub.com/facebook/jest/pull/6991))
- `[jest-changed-files]` Refactor to use `execa` over `child_process` ([#6987](https://togithub.com/facebook/jest/pull/6987))
- `[*]` Bump dated dependencies ([#6978](https://togithub.com/facebook/jest/pull/6978))
- `[scripts]` Don’t make empty sub-folders for ignored files in build folder ([#7001](https://togithub.com/facebook/jest/pull/7001))
- `[docs]` Add missing export statement in `puppeteer_environment.js` under `docs/Puppeteer.md` ([#7127](https://togithub.com/facebook/jest/pull/7127))
- `[docs]` Removed useless expect.assertions in `TestingAsyncCode.md` ([#7131](https://togithub.com/facebook/jest/pull/7131))
- `[docs]` Remove references to `@providesModule` which isn't supported anymore ([#7147](https://togithub.com/facebook/jest/pull/7147))
- `[docs]` Update `setupFiles` documentation for clarity ([#7187](https://togithub.com/facebook/jest/pull/7187))
- `[docs]` Change `require.require*` to `jest.require*` ([#7210](https://togithub.com/facebook/jest/pull/7210))
- `[jest-circus]` Add readme.md ([#7198](https://togithub.com/facebook/jest/pull/7198))
- `[jest-editor-support]` Remove from the repository ([#7232](https://togithub.com/facebook/jest/pull/7232))
- `[jest-test-typescript-parser]` Remove from the repository ([#7232](https://togithub.com/facebook/jest/pull/7232))
- `[tests]` Free tests from the dependency on value of FORCE_COLOR ([#6585](https://togithub.com/facebook/jest/pull/6585/files))
- `[*]` Add babel plugin to make sure Jest is unaffected by fake Promise implementations ([#7225](https://togithub.com/facebook/jest/pull/7225))
- `[docs]` Add correct default value for `testUrl` config option ([#7277](https://togithub.com/facebook/jest/pull/7277))
- `[docs]` Remove duplicate code in `MockFunctions` ([#7297](https://togithub.com/facebook/jest/pull/7297))
- `[*]` Add check for Facebook copyright headers on CI ([#7370](https://togithub.com/facebook/jest/pull/7370))
- `[*]` Update Facebook copyright headers ([#7589](https://togithub.com/facebook/jest/pull/7589))
- `[jest-haste-map]` Refactor `dependencyExtractor` and tests ([#7385](https://togithub.com/facebook/jest/pull/7385))
- `[docs]` Clearify conditional setting of `NODE_ENV` ([#7369](https://togithub.com/facebook/jest/pull/7369))
- `[docs]` Clarify conditional setting of `NODE_ENV` ([#7369](https://togithub.com/facebook/jest/pull/7369))
- `[*]` Standardize file names ([#7316](https://togithub.com/facebook/jest/pull/7316), [#7266](https://togithub.com/facebook/jest/pull/7266), [#7238](https://togithub.com/facebook/jest/pull/7238), [#7314](https://togithub.com/facebook/jest/pull/7314), [#7467](https://togithub.com/facebook/jest/pull/7467), [#7464](https://togithub.com/facebook/jest/pull/7464)), [#7471](https://togithub.com/facebook/jest/pull/7471))
- `[docs]` Add `testPathIgnorePatterns` in CLI documentation ([#7440](https://togithub.com/facebook/jest/pull/7440))
- `[docs]` Removed misleading text about `describe()` grouping together tests into a test suite ([#7434](https://togithub.com/facebook/jest/pull/7434))
- `[diff-sequences]` Add performance benchmark to package ([#7603](https://togithub.com/facebook/jest/pull/7603))
- `[*]` Replace as many `Object.assign` with object spread as possible ([#7627](https://togithub.com/facebook/jest/pull/7627))
- `[ci]` Initial support for Azure Pipelines ([#7556](https://togithub.com/facebook/jest/pull/7556))
##### Performance
- `[jest-mock]` Improve `getType` function performance. ([#7159](https://togithub.com/facebook/jest/pull/7159))
Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Renovate Bot. View repository job log here.
This PR contains the following updates:
23.6.0
->24.0.0
Release Notes
facebook/jest
### [`v24.0.0`](https://togithub.com/facebook/jest/blob/master/CHANGELOG.md#2400) [Compare Source](https://togithub.com/facebook/jest/compare/v23.6.0...v24.0.0) ##### Features - `[jest-each]` [**BREAKING**] Add primitive pretty printing for interpolated titles ([#7694](https://togithub.com/facebook/jest/pull/7694)) - `[jest-runtime]` Add `jest.isolateModules` for scoped module initialization ([#6701](https://togithub.com/facebook/jest/pull/6701)) - `[jest-diff]` [**BREAKING**] Support diffing numbers and booleans instead of returning null for different ones ([#7605](https://togithub.com/facebook/jest/pull/7605)) - `[jest-diff]` [**BREAKING**] Replace `diff` with `diff-sequences` package ([#6961](https://togithub.com/facebook/jest/pull/6961)) - `[jest-cli]` [**BREAKING**] Only set error process error codes when they are non-zero ([#7363](https://togithub.com/facebook/jest/pull/7363)) - `[jest-config]` [**BREAKING**] Deprecate `setupTestFrameworkScriptFile` in favor of new `setupFilesAfterEnv` ([#7119](https://togithub.com/facebook/jest/pull/7119)) - `[jest-worker]` [**BREAKING**] Add functionality to call a `setup` method in the worker before the first call and a `teardown` method when ending the farm ([#7014](https://togithub.com/facebook/jest/pull/7014)) - `[jest-config]` [**BREAKING**] Set default `notifyMode` to `failure-change` ([#7024](https://togithub.com/facebook/jest/pull/7024)) - `[jest-haste-map]` [**BREAKING**] Remove support for `@providesModule` ([#6104](https://togithub.com/facebook/jest/pull/6104)) - `[jest-haste-map]` [**BREAKING**] Replace internal data structures to improve performance ([#6960](https://togithub.com/facebook/jest/pull/6960)) - `[jest-haste-map]` [**BREAKING**] Use relative paths to allow remote caching ([#7020](https://togithub.com/facebook/jest/pull/7020)) - `[jest-haste-map]` [**BREAKING**] Remove name from hash in `HasteMap.getCacheFilePath` ([#7218](https://togithub.com/facebook/jest/pull/7218)) - `[babel-preset-jest]` [**BREAKING**] Export a function instead of an object for Babel 7 compatibility ([#7203](https://togithub.com/facebook/jest/pull/7203)) - `[jest-haste-map]` [**BREAKING**] Expose relative paths when getting the file iterator ([#7321](https://togithub.com/facebook/jest/pull/7321)) - `[jest-cli]` [**BREAKING**] Run code transforms over `global{Setup,Teardown}` ([#7562](https://togithub.com/facebook/jest/pull/7562)) - `[jest-haste-map]` Add `hasteFS.getSize(path)` ([#7580](https://togithub.com/facebook/jest/pull/7580)) - `[jest-cli]` Print version ending in `-dev` when running a local Jest clone ([#7582](https://togithub.com/facebook/jest/pull/7582)) - `[jest-cli]` Add Support for `globalSetup` and `globalTeardown` in projects ([#6865](https://togithub.com/facebook/jest/pull/6865)) - `[jest-runtime]` Add `extraGlobals` to config to load extra global variables into the execution vm ([#7454](https://togithub.com/facebook/jest/pull/7454)) - `[jest-util]` Export `specialChars` containing Unicode characters and ANSI escapes for console output ([#7532](https://togithub.com/facebook/jest/pull/7532)) - `[jest-config]` Handle typescript (`ts` and `tsx`) by default ([#7533](https://togithub.com/facebook/jest/pull/7533)) - `[jest-validate]` Add support for comments in `package.json` using a `"//"` key ([#7295](https://togithub.com/facebook/jest/pull/7295)) - `[jest-config]` Add shorthand for watch plugins and runners ([#7213](https://togithub.com/facebook/jest/pull/7213)) - `[jest-jasmine2/jest-circus/jest-cli]` Add test.todo ([#6996](https://togithub.com/facebook/jest/pull/6996)) - `[pretty-format]` Option to not escape strings in diff messages ([#5661](https://togithub.com/facebook/jest/pull/5661)) - `[jest-haste-map]` Add `getFileIterator` to `HasteFS` for faster file iteration ([#7010](https://togithub.com/facebook/jest/pull/7010)) - `[jest-config]` Add `readConfigs` function, previously in `jest-cli` ([#7096](https://togithub.com/facebook/jest/pull/7096)) - `[jest-snapshot]` Enable configurable snapshot paths ([#6143](https://togithub.com/facebook/jest/pull/6143)) - `[pretty-format]` Support HTMLCollection and NodeList in DOMCollection plugin ([#7125](https://togithub.com/facebook/jest/pull/7125)) - `[jest-runtime]` Pass the normalized configuration to script transformers ([#7148](https://togithub.com/facebook/jest/pull/7148)) - `[expect]` Improve report when assertion fails, part 3 ([#7152](https://togithub.com/facebook/jest/pull/7152)) - `[jest-runtime]` If `require` fails without a file extension, print all files that match with one ([#7160](https://togithub.com/facebook/jest/pull/7160)) - `[jest-haste-map]` Make `ignorePattern` optional ([#7166](https://togithub.com/facebook/jest/pull/7166)) - `[jest-haste-map]` Add `getCacheFilePath` to get the path to the cache file for a `HasteMap` instance ([#7217](https://togithub.com/facebook/jest/pull/7217)) - `[jest-runtime]` Remove `cacheDirectory` from `ignorePattern` for `HasteMap` if not necessary ([#7166](https://togithub.com/facebook/jest/pull/7166)) - `[jest-validate]` Add syntax to validate multiple permitted types ([#7207](https://togithub.com/facebook/jest/pull/7207)) - `[jest-config]` Accept an array as as well as a string for `testRegex`([#7209][#7209](https://togithub.com/facebook/jest/pull/7209))) - `[expect/jest-matcher-utils]` Improve report when assertion fails, part 4 ([#7241](https://togithub.com/facebook/jest/pull/7241)) - `[expect/jest-matcher-utils]` Improve report when assertion fails, part 5 ([#7557](https://togithub.com/facebook/jest/pull/7557)) - `[expect]` Check constructor equality in .toStrictEqual() ([#7005](https://togithub.com/facebook/jest/pull/7005)) - `[jest-util]` Add `jest.getTimerCount()` to get the count of scheduled fake timers ([#7285](https://togithub.com/facebook/jest/pull/7285)) - `[jest-config]` Add `dependencyExtractor` option to use a custom module to extract dependencies from files ([#7313](https://togithub.com/facebook/jest/pull/7313), [#7349](https://togithub.com/facebook/jest/pull/7349), [#7350](https://togithub.com/facebook/jest/pull/7350), [#7362](https://togithub.com/facebook/jest/pull/7362)) - `[jest-haste-map]` Accept a `getCacheKey` method in `hasteImplModulePath` modules to reset the cache when the logic changes ([#7350](https://togithub.com/facebook/jest/pull/7350)) - `[jest-config]` Add `haste.computeSha1` option to compute the sha-1 of the files in the haste map ([#7345](https://togithub.com/facebook/jest/pull/7345)) - `[expect]` `expect(Infinity).toBeCloseTo(Infinity)` Treats `Infinity` as equal in toBeCloseTo matcher ([#7405](https://togithub.com/facebook/jest/pull/7405)) - `[jest-worker]` Add node worker-thread support to jest-worker ([#7408](https://togithub.com/facebook/jest/pull/7408)) - `[jest-config]` Allow `bail` setting to be configured with a number allowing tests to abort after `n` of failures ([#7335](https://togithub.com/facebook/jest/pull/7335)) - `[jest-config]` Allow % based configuration of `--max-workers` ([#7494](https://togithub.com/facebook/jest/pull/7494)) - `[jest-runner]` Instantiate the test environment class with the current `testPath` ([#7442](https://togithub.com/facebook/jest/pull/7442)) - `[jest-config]` Always resolve jest-environment-jsdom from jest-config ([#7476](https://togithub.com/facebook/jest/pull/7476)) - `[expect]` Improve report when assertion fails, part 6 ([#7621](https://togithub.com/facebook/jest/pull/7621)) - `[jest-worker]` Add `enableWorkerThreads` option to explicitly opt-in to `worker_threads` if available ([#7681](https://togithub.com/facebook/jest/pull/7681)) ##### Fixes - `[expect]` Accept inherited properties in `toHaveProperty` matcher ([#7686](https://togithub.com/facebook/jest/pull/7686)) - `[jest-diff]` Do not claim that `-0` and `0` have no visual difference ([#7605](https://togithub.com/facebook/jest/pull/7605)) - `[jest-mock]` Fix automock for numeric function names ([#7653](https://togithub.com/facebook/jest/pull/7653)) - `[jest-config]` Ensure `existsSync` is only called with a string parameter ([#7607](https://togithub.com/facebook/jest/pull/7607)) - `[expect]` `toStrictEqual` considers sparseness of arrays. ([#7591](https://togithub.com/facebook/jest/pull/7591)) - `[jest-cli]` Fix empty coverage data for untested files ([#7388](https://togithub.com/facebook/jest/pull/7388)) - `[jest-cli]` [**BREAKING**] Do not use `text-summary` coverage reporter by default if other reporters are configured ([#7058](https://togithub.com/facebook/jest/pull/7058)) - `[jest-mock]` [**BREAKING**] Fix bugs with mock/spy result tracking of recursive functions ([#6381](https://togithub.com/facebook/jest/pull/6381)) - `[jest-haste-map]` [**BREAKING**] Recover files correctly after haste name collisions are fixed ([#7329](https://togithub.com/facebook/jest/pull/7329)) - `[pretty-format]` [**BREAKING**] Omit non-enumerable symbol properties ([#7448](https://togithub.com/facebook/jest/pull/7448)) - `[*]` [**BREAKING**] Upgrade to Babel 7, dropping support for Babel 6 ([#7016](https://togithub.com/facebook/jest/pull/7016)) - `[jest-cli]` Avoid watch mode causing bad terminal behavior in some cases ([#7523](https://togithub.com/facebook/jest/pull/7523)) - `[jest-runner/jest-worker]` Fix missing console output in verbose mode ([#6871](https://togithub.com/facebook/jest/pull/6871)) - `[expect]` Standardize file naming in `expect` ([#7306](https://togithub.com/facebook/jest/pull/7306)) - `[jest-each]` Add empty array validation check ([#7249](https://togithub.com/facebook/jest/pull/7249)) - `[jest-cli]` Interrupt tests if interactive watch plugin key is pressed ([#7222](https://togithub.com/facebook/jest/pull/7222)) - `[jest-each]` Add each array validation check ([#7033](https://togithub.com/facebook/jest/pull/7033)) - `[jest-haste-map]` Do not visit again files with the same sha-1 ([#6990](https://togithub.com/facebook/jest/pull/6990)) - `[jest-jasmine2]` Fix memory leak in Error objects hold by the framework ([#6965](https://togithub.com/facebook/jest/pull/6965)) - `[jest-haste-map]` Fixed Haste whitelist generation for scoped modules on Windows ([#6980](https://togithub.com/facebook/jest/pull/6980)) - `[jest-mock]` Fix inheritance of static properties and methods in mocks ([#7003](https://togithub.com/facebook/jest/pull/7003)) - `[jest-mock]` Fix mocking objects without `Object.prototype` in their prototype chain ([#7003](https://togithub.com/facebook/jest/pull/7003)) - `[jest-mock]` Check `_isMockFunction` is true rather than truthy on potential mocks ([#7017](https://togithub.com/facebook/jest/pull/7017)) - `[jest-cli]` Update jest-cli to show git ref in message when using `changedSince` ([#7028](https://togithub.com/facebook/jest/pull/7028)) - `[jest-jasmine2`] Fix crash when test return Promise rejected with null ([#7049](https://togithub.com/facebook/jest/pull/7049)) - `[jest-runtime]` Check `_isMockFunction` is true rather than truthy on potential global mocks ([#7017](https://togithub.com/facebook/jest/pull/7017)) - `[jest-jasmine]` Show proper error message from async `assert` errors ([#6821](https://togithub.com/facebook/jest/pull/6821)) - `[jest-jasmine2]` Better error message when a describe block is empty ([#6372](https://togithub.com/facebook/jest/pull/6372)) - `[jest-jasmine2]` Pending calls inside async tests are reported as pending not failed ([#6782](https://togithub.com/facebook/jest/pull/6782)) - `[jest-circus]` Better error message when a describe block is empty ([#6372](https://togithub.com/facebook/jest/pull/6372)) - `[jest-jasmine2]` Add missing testLocationResults for `xit` and `fit`([#6482](https://togithub.com/facebook/jest/pull/6482)) - `[expect]` Return false from asymmetric matchers if received value isn’t string ([#7107](https://togithub.com/facebook/jest/pull/7107)) - `[jest-cli]` Fix unhandled error when a bad revision is provided to `changedSince` ([#7115](https://togithub.com/facebook/jest/pull/7115)) - `[jest-config]` Moved dynamically assigned `cwd` from `jest-cli` to default configuration in `jest-config` ([#7146](https://togithub.com/facebook/jest/pull/7146)) - `[jest-config]` Fix `getMaxWorkers` on termux ([#7154](https://togithub.com/facebook/jest/pull/7154)) - `[jest-runtime]` Throw an explicit error if `js` is missing from `moduleFileExtensions` ([#7160](https://togithub.com/facebook/jest/pull/7160)) - `[jest-runtime]` Fix missing coverage when using negative glob pattern in `testMatch` ([#7170](https://togithub.com/facebook/jest/pull/7170)) - `[*]` Ensure `maxWorkers` is at least 1 (was 0 in some cases where there was only 1 CPU) ([#7182](https://togithub.com/facebook/jest/pull/7182)) - `[jest-runtime]` Fix transform cache invalidation when requiring a test file from multiple projects ([#7186](https://togithub.com/facebook/jest/pull/7186)) - `[jest-changed-files]` Return correctly the changed files when using `lastCommit=true` on Mercurial repositories ([#7228](https://togithub.com/facebook/jest/pull/7228)) - `[babel-jest]` Cache includes babel environment variables ([#7239](https://togithub.com/facebook/jest/pull/7239)) - `[jest-config]` Use strings instead of `RegExp` instances in normalized configuration ([#7251](https://togithub.com/facebook/jest/pull/7251)) - `[jest-circus]` Make sure to display real duration even if time is mocked ([#7264](https://togithub.com/facebook/jest/pull/7264)) - `[expect]` Improves the failing message for `toStrictEqual` matcher. ([#7224](https://togithub.com/facebook/jest/pull/7224)) - `[expect]` Improves the failing message for `toEqual` matcher. ([#7325](https://togithub.com/facebook/jest/pull/7325)) - `[jest-resolve]` Fix not being able to resolve path to mapped file with custom platform ([#7312](https://togithub.com/facebook/jest/pull/7312)) - `[jest-message-util]` Improve parsing of error messages for unusually formatted stack traces ([#7319](https://togithub.com/facebook/jest/pull/7319)) - `[jest-runtime]` Ensure error message text is not lost on errors with code frames ([#7319](https://togithub.com/facebook/jest/pull/7319)) - `[jest-haste-map]` Fix to resolve path that is start with words same as rootDir ([#7324](https://togithub.com/facebook/jest/pull/7324)) - `[expect]` Fix toMatchObject matcher when used with `Object.create(null)` ([#7334](https://togithub.com/facebook/jest/pull/7334)) - `[jest-haste-map]` Remove legacy condition for duplicate module detection ([#7333](https://togithub.com/facebook/jest/pull/7333)) - `[jest-haste-map]` Fix `require` detection with trailing commas and ignore `import typeof` modules ([#7385](https://togithub.com/facebook/jest/pull/7385)) - `[jest-cli]` Fix to set prettierPath via config file ([#7412](https://togithub.com/facebook/jest/pull/7412)) - `[expect]` Test more precisely for class instance getters ([#7477](https://togithub.com/facebook/jest/pull/7477)) - `[jest-cli]` Support dashed args ([#7497](https://togithub.com/facebook/jest/pull/7497)) - `[jest-cli]` Fix to run in band tests if watch mode enable when runInBand arg used ([#7518](https://togithub.com/facebook/jest/pull/7518)) - `[jest-runtime]` Fix mistake as test files when run coverage issue. ([#7506](https://togithub.com/facebook/jest/pull/7506)) - `[jest-cli]` print info about passWithNoTests flag ([#7309](https://togithub.com/facebook/jest/pull/7309)) - `[pretty-format]` Omit unnecessary symbol filter for object keys ([#7457](https://togithub.com/facebook/jest/pull/7457)) - `[jest-runtime]` Fix `requireActual` on node_modules with mock present ([#7404](https://togithub.com/facebook/jest/pull/7404)) - `[jest-resolve]` Fix `isBuiltinModule` to support versions of node without `module.builtinModules` ([#7565](https://togithub.com/facebook/jest/pull/7565)) - `[babel-jest]` Set `cwd` to be resilient to it changing during the runtime of the tests ([#7574](https://togithub.com/facebook/jest/pull/7574)) - `[jest-snapshot]` Write and read snapshots from disk even if `fs` is mocked ([#7080](https://togithub.com/facebook/jest/pull/7080)) - `[jest-config]` Normalize `config.cwd` and `config.rootDir` using \`realpath ([#7598](https://togithub.com/facebook/jest/pull/7598)) - `[jest-environment-node]` Fix buffer property is not ArrayBuffer issue. ([#7626](https://togithub.com/facebook/jest/pull/7626)) - `[babel-plugin-jest-hoist]` Ignore TS type annotations when looking for out-of-scope references ([#7641](https://togithub.com/facebook/jest/pull/7641)) - `[jest-config]` Add name to project if one does not exist to pick correct resolver ([#5862](https://togithub.com/facebook/jest/pull/5862)) - `[jest-runtime]` Pass `watchPathIgnorePatterns` to Haste instance ([#7585](https://togithub.com/facebook/jest/pull/7585)) - `[jest-runtime]` Resolve mock files via Haste when using `require.resolve` ([#7687](https://togithub.com/facebook/jest/pull/7687)) ##### Chore & Maintenance - `[*]` [**BREAKING**] Require Node.js 6+ for all packages ([#7258](https://togithub.com/facebook/jest/pull/7258)) - `[jest-util]` [**BREAKING**] Remove long-deprecated globals for fake timers ([#7285](https://togithub.com/facebook/jest/pull/7285)) - `[*]` [**BREAKING**] Upgrade to Micromatch 3 ([#6650](https://togithub.com/facebook/jest/pull/6650)) - `[*]` [**BREAKING**] Remove regenerator-runtime injection ([#7595](https://togithub.com/facebook/jest/pull/7595)) - `[jest-worker]` Disable `worker_threads` to avoid issues with libraries to ready for it ([#7681](https://togithub.com/facebook/jest/pull/7681)) - `[docs]` Fix message property in custom matcher example to return a function instead of a constant. ([#7426](https://togithub.com/facebook/jest/pull/7426)) - `[jest-circus]` Standardize file naming in `jest-circus` ([#7301](https://togithub.com/facebook/jest/pull/7301)) - `[docs]` Add synchronous test.each setup ([#7150](https://togithub.com/facebook/jest/pull/7150)) - `[docs]` Add `this.extend` to the Custom Matchers API reference ([#7130](https://togithub.com/facebook/jest/pull/7130)) - `[docs]` Fix default value for `coverageReporters` value in configuration docs ([#7126](https://togithub.com/facebook/jest/pull/7126)) - `[docs]` Add link for jest-extended in expect docs ([#7078](https://togithub.com/facebook/jest/pull/7078)) - `[jest-util]` Add ErrorWithStack class ([#7067](https://togithub.com/facebook/jest/pull/7067)) - `[docs]` Document `--runTestsByPath` CLI parameter ([#7046](https://togithub.com/facebook/jest/pull/7046)) - `[docs]` Fix babel-core installation instructions ([#6745](https://togithub.com/facebook/jest/pull/6745)) - `[docs]` Explain how to rewrite assertions to avoid large irrelevant diff ([#6971](https://togithub.com/facebook/jest/pull/6971)) - `[examples]` add example using Babel 7 ([#6983](https://togithub.com/facebook/jest/pull/6983)) - `[docs]` Replace shallow equality with referential identity in `ExpectAPI.md` ([#6991](https://togithub.com/facebook/jest/pull/6991)) - `[jest-changed-files]` Refactor to use `execa` over `child_process` ([#6987](https://togithub.com/facebook/jest/pull/6987)) - `[*]` Bump dated dependencies ([#6978](https://togithub.com/facebook/jest/pull/6978)) - `[scripts]` Don’t make empty sub-folders for ignored files in build folder ([#7001](https://togithub.com/facebook/jest/pull/7001)) - `[docs]` Add missing export statement in `puppeteer_environment.js` under `docs/Puppeteer.md` ([#7127](https://togithub.com/facebook/jest/pull/7127)) - `[docs]` Removed useless expect.assertions in `TestingAsyncCode.md` ([#7131](https://togithub.com/facebook/jest/pull/7131)) - `[docs]` Remove references to `@providesModule` which isn't supported anymore ([#7147](https://togithub.com/facebook/jest/pull/7147)) - `[docs]` Update `setupFiles` documentation for clarity ([#7187](https://togithub.com/facebook/jest/pull/7187)) - `[docs]` Change `require.require*` to `jest.require*` ([#7210](https://togithub.com/facebook/jest/pull/7210)) - `[jest-circus]` Add readme.md ([#7198](https://togithub.com/facebook/jest/pull/7198)) - `[jest-editor-support]` Remove from the repository ([#7232](https://togithub.com/facebook/jest/pull/7232)) - `[jest-test-typescript-parser]` Remove from the repository ([#7232](https://togithub.com/facebook/jest/pull/7232)) - `[tests]` Free tests from the dependency on value of FORCE_COLOR ([#6585](https://togithub.com/facebook/jest/pull/6585/files)) - `[*]` Add babel plugin to make sure Jest is unaffected by fake Promise implementations ([#7225](https://togithub.com/facebook/jest/pull/7225)) - `[docs]` Add correct default value for `testUrl` config option ([#7277](https://togithub.com/facebook/jest/pull/7277)) - `[docs]` Remove duplicate code in `MockFunctions` ([#7297](https://togithub.com/facebook/jest/pull/7297)) - `[*]` Add check for Facebook copyright headers on CI ([#7370](https://togithub.com/facebook/jest/pull/7370)) - `[*]` Update Facebook copyright headers ([#7589](https://togithub.com/facebook/jest/pull/7589)) - `[jest-haste-map]` Refactor `dependencyExtractor` and tests ([#7385](https://togithub.com/facebook/jest/pull/7385)) - `[docs]` Clearify conditional setting of `NODE_ENV` ([#7369](https://togithub.com/facebook/jest/pull/7369)) - `[docs]` Clarify conditional setting of `NODE_ENV` ([#7369](https://togithub.com/facebook/jest/pull/7369)) - `[*]` Standardize file names ([#7316](https://togithub.com/facebook/jest/pull/7316), [#7266](https://togithub.com/facebook/jest/pull/7266), [#7238](https://togithub.com/facebook/jest/pull/7238), [#7314](https://togithub.com/facebook/jest/pull/7314), [#7467](https://togithub.com/facebook/jest/pull/7467), [#7464](https://togithub.com/facebook/jest/pull/7464)), [#7471](https://togithub.com/facebook/jest/pull/7471)) - `[docs]` Add `testPathIgnorePatterns` in CLI documentation ([#7440](https://togithub.com/facebook/jest/pull/7440)) - `[docs]` Removed misleading text about `describe()` grouping together tests into a test suite ([#7434](https://togithub.com/facebook/jest/pull/7434)) - `[diff-sequences]` Add performance benchmark to package ([#7603](https://togithub.com/facebook/jest/pull/7603)) - `[*]` Replace as many `Object.assign` with object spread as possible ([#7627](https://togithub.com/facebook/jest/pull/7627)) - `[ci]` Initial support for Azure Pipelines ([#7556](https://togithub.com/facebook/jest/pull/7556)) ##### Performance - `[jest-mock]` Improve `getType` function performance. ([#7159](https://togithub.com/facebook/jest/pull/7159))Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "
rebase!
".:no_bell: Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Renovate Bot. View repository job log here.