Skip to content

Releases: jestjs/jest

v30.0.0-alpha.6

08 Aug 07:46
Compare
Choose a tag to compare
v30.0.0-alpha.6 Pre-release
Pre-release

Features

  • [babel-jest] Add option excludeJestPreset to allow opting out of babel-preset-jest (#15164)
  • [jest-circus, jest-test-result] Add startedAt timestamp in TestCaseResultObject within onTestCaseResult (#15145)
  • [jest-config] Show rootDir in error message when a preset fails to load (#15194)
  • [jest-config] Support loading TS config files using esbuild-register via docblock loader (#15190)
  • [jest-config] allow passing TS config loader options via docblock comment (#15234)
  • [expect, @jest/expect] [BREAKING] Add type inference for function parameters in CalledWith assertions (#15129)
  • [@jest/expect-utils] Properly compare all types of TypedArrays (#15178)
  • [jest-resolver] Support file:// URLs as paths (#15154)
  • [jest-runtime] Add unstable_unmockModule (#15080)
  • [expect] Use Array.isArray to check if an array is an Array (#15101)
  • [@jest/create-cache-key-function] Correct the return type of createCacheKey (#15159)
  • [pretty-format] Fixed a bug where "anonymous custom elements" were not being printed as expected. (#15138)
  • [jest-worker] Properly handle a circular reference error when worker tries to send an assertion fails where either the expected or actual value is circular (#15191)
  • [jest-worker] Properly handle a BigInt when worker tries to send an assertion fails where either the expected or actual value is BigInt (#15191)

Performance

  • [jest-runner] Better cleanup source-map-support after test to resolve (minor) memory leak (#15233)

Chore & Maintenance

  • [*] [BREAKING] Drop support for Node.js versions 14, 19 and 21 (#14460, #15118)
  • [babel-jest, @jest/transform] Update babel-plugin-istanbul to v6 (#15156)
  • [babel-plugin-jest-hoist] Move unnecessary dependencies to devDependencies (#15010)

New Contributors

Full Changelog: v30.0.0-alpha.5...v30.0.0-alpha.6

v30.0.0-alpha.5

30 May 12:47
Compare
Choose a tag to compare
v30.0.0-alpha.5 Pre-release
Pre-release

Features

  • [@jest/util-snapshot] Extract utils used by tooling from jest-snapshot into its own package (#15095)
  • [jest-each] Introduce %$ option to add number of the test to its title (#14710)

Fixes

  • [jest-config] Allow Node16/NodeNext/Bundler moduleResolution in project's tsconfig (#14739)
  • [BREAKING] Specifying testPathPatterns when programmatically calling watch must be specified as `new

Chore & Maintenance

  • [*] Increase version of micromatch to ^4.0.7 (#15082)
  • [docs] Revised documentation for .toHaveBeenCalled() to accurately depict its functionality. (#14853)

New Contributors

Full Changelog: v30.0.0-alpha.4...v30.0.0-alpha.5

v30.0.0-alpha.4

12 May 21:48
Compare
Choose a tag to compare
v30.0.0-alpha.4 Pre-release
Pre-release

Features

  • [jest-circus] Add a retryImmediately option to jest.retryTimes (#14696)
  • [@jest/core] Support --outputFile option for --listTests (#14980)
  • [@jest/environment] [BREAKING] Remove deprecated jest.genMockFromModule() (#15042)
  • [@jest/environment] [BREAKING] Remove unnecessary defensive code (#15045)
  • [jest-matcher-utils] Add SERIALIZABLE_PROPERTIES to allow custom serialization of objects (#14893)
  • [jest-reporters] Add support for DEC mode 2026 (#15008)
  • [jest-runtime] Support import.meta.resolve (#14930)
  • [jest-runtime] [BREAKING] Make it mandatory to pass globalConfig to the Runtime constructor (#15044)
  • [@jest/types] Improve argument type inference passed to test and describe callback functions from each tables (#14920)

Fixes

  • [expect] Improve diff for failing expect.objectContaining (#15038)
  • [jest-changed-files] Print underlying errors when VCS commands fail (#15052)
  • [jest-changed-files] Abort sl root call if output resembles a steam locomotive (#15053)
  • [jest-each] Allow $keypath templates with null or undefined values (#14831)
  • [@jest/expect-utils] Catch circular references within arrays when matching objects (#14894)
  • [@jest/expect-utils] Fix not addressing to Sets and Maps as objects without keys (#14873)
  • [jest-util] Add missing dependency on jest-regex-util (#15030)

Chore & Maintenance

  • [@jest/reporters] Upgrade istanbul-lib-source-maps (#14924)
  • [jest-util] Upgrade picomatch to v4 (#14653 & #14885)
  • [docs] Link NestJS documentation on testing with Jest (#14940)

New Contributors

Full Changelog: v30.0.0-alpha.3...v30.0.0-alpha.4

v30.0.0-alpha.3

20 Feb 11:20
Compare
Choose a tag to compare
v30.0.0-alpha.3 Pre-release
Pre-release

Features

  • [jest-circus] Add a waitBeforeRetry option to jest.retryTimes (#14738)
  • [jest-circus, jest-jasmine2] Allow setupFilesAfterEnv to export an async function (#10962)
  • [jest-config] Loads config file from provided path in package.json (#14044)
  • [jest-config] Allow loading jest.config.cts files (#14070)
  • [@jest/core] Group together open handles with the same stack trace (#13417, & #14789)
  • [@jest/core] [BREAKING] Changed --filter to accept an object with shape { filtered: Array<string> } to match documentation (#13319)
  • [@jest/environment-jsdom-abstract] Introduce new package which abstracts over the jsdom environment, allowing usage of custom versions of JSDOM (#14717)
  • [jest-environment-node] Update jest environment with dispose symbols Symbol (#14888 & #14909)
  • [jest-mock] Add support for the Explicit Resource Management proposal to use the using keyword with jest.spyOn(object, methodName) (#14895)
  • [jest-runtime] Support import.meta.filename and import.meta.dirname (available from Node 20.11)
  • [jest-circus] Replace recursive makeTestResults implementation with iterative one (#14760)
  • [jest-circus] Omit expect.hasAssertions() errors if a test already has errors (#14866)
  • [jest-cli] [BREAKING] Validate CLI flags that require arguments receives them (#14783)
  • [jest-config] Support testTimeout in project config (#14697)
  • [jest-config] Support coverageReporters in project config (#14697)
  • [jest-config] Allow reporters in project config (#14768)
  • [pretty-format] [BREAKING] Print ArrayBuffer and DataView correctly (#14290)

Performance

  • [jest-haste-map] Only spawn one process to check for watchman installation (#14826)

Chore & Maintenance

  • [*] [BREAKING] Upgrade to glob@10 (#14509)
  • [*] Use TypeError over Error where appropriate (#14799)
  • [jest-schemas] Upgrade @sinclair/typebox (#14775)
  • [docs] Append to NODE_OPTIONS, not overwrite (#14730)
  • [docs] Updated .toHaveBeenCalled() documentation to correctly reflect its functionality (#14842)

New Contributors

Full Changelog: v30.0.0-alpha.2...v30.0.0-alpha.3

v30.0.0-alpha.2

16 Nov 09:33
Compare
Choose a tag to compare
v30.0.0-alpha.2 Pre-release
Pre-release

Features

  • [jest-circus, jest-cli, jest-config] Add waitNextEventLoopTurnForUnhandledRejectionEvents flag to minimise performance impact of correct detection of unhandled promise rejections introduced in #14315 (#14681)
  • [@jest/core] Add perfStats to surface test setup overhead (#14622)

Fixes

  • [jest-config] Support testTimeout in project config (#14697)
  • [@jest/expect-utils] [BREAKING] exclude non-enumerable in object matching (#14670)
  • [@jest/expect-utils] Fix comparison of URL (#14672)
  • [@jest/expect-utils] Check Symbol properties in equality (#14688)

Chore & Maintenance

  • [expect] [BREAKING] Remove .toBeCalled(), .toBeCalledTimes(), .toBeCalledWith(), .lastCalledWith(), .nthCalledWith(), .toReturn(), .toReturnTimes(), .toReturnWith(), .lastReturnedWith(), .nthReturnedWith() and .toThrowError() matcher aliases (#14632)
  • [jest-config, @jest/core, jest-util] Upgrade ci-info (#14655)
  • [jest-mock] [BREAKING] Remove MockFunctionMetadataType, MockFunctionMetadata and SpyInstance types (#14621)
  • [jest-transform] Upgrade write-file-atomic (#14274)
  • [jest-util] Upgrade picomatch to v3 (#14653)

New Contributors

Full Changelog: v30.0.0-alpha.1...v30.0.0-alpha.2

v30.0.0-alpha.1

30 Oct 13:35
Compare
Choose a tag to compare
v30.0.0-alpha.1 Pre-release
Pre-release

Features

  • [jest-config] [BREAKING] Add mts and cts to default moduleFileExtensions config (#14369)
  • [jest-config] [BREAKING] Update testMatch and testRegex default option for supporting mjs, cjs, mts, and cts (#14584)
  • [@jest/core] [BREAKING] Group together open handles with the same stack trace (#13417, & #14543)
  • [@jest/core, @jest/test-sequencer] [BREAKING] Exposes globalConfig & contexts to TestSequencer (#14535, & #14543)
  • [jest-environment-jsdom] [BREAKING] Upgrade JSDOM to v22 (#13825)
  • [@jest/fake-timers] [BREAKING] Upgrade @sinonjs/fake-timers to v11 (#14544)
  • [@jest/fake-timers] Exposing new modern timers function advanceTimersToFrame() which advances all timers by the needed milliseconds to execute callbacks currently scheduled with requestAnimationFrame (#14598)
  • [jest-runtime] Exposing new modern timers function jest.advanceTimersToFrame() from @jest/fake-timers (#14598)
  • [@jest/schemas] Upgrade @sinclair/typebox to v0.31 (#14072)
  • [@jest/types] test.each(): Accept a readonly (as const) table properly (#14565)
  • [jest-snapshot] [BREAKING] Add support for Error causes in snapshots (#13965)
  • [jest-snapshot] Support Prettier 3 (#14566)
  • [pretty-format] [BREAKING] Do not render empty string children ('') in React plugin (#14470)

Fixes

  • [babel-plugin-jest-hoist] Use denylist instead of the deprecated blacklist for Babel 8 support (#14109)
  • [expect] Check error instance type for toThrow/toThrowError (#14576)
  • [jest-circus] [BREAKING] Prevent false test failures caused by promise rejections handled asynchronously (#14315)
  • [jest-circus, jest-expect, jest-snapshot] Pass test.failing tests when containing failing snapshot matchers (#14313)
  • [jest-config] Make sure to respect runInBand option (#14578)
  • [@jest/expect-utils] Fix comparison of DataView (#14408)
  • [jest-leak-detector] Make leak-detector more aggressive when running GC (#14526)
  • [jest-runtime] Properly handle re-exported native modules in ESM via CJS (#14589)
  • [jest-util] Make sure isInteractive works in a browser (#14552)
  • [pretty-format] [BREAKING] Print ArrayBuffer and DataView correctly (#14290)
  • [jest-cli] When specifying paths on the command line, only match against the relative paths of the test files (#12519)
    • [BREAKING] Changes testPathPattern configuration option to testPathPatterns, which now takes a list of patterns instead of the regex.
    • [BREAKING] --testPathPattern is now --testPathPatterns
  • [jest-reporters, jest-runner] Unhandled errors without stack get correctly logged to console (#14619)

Performance

Chore & Maintenance

  • [*] [BREAKING] Drop support for Node.js versions 14 and 19 (#14460)
  • [*] [BREAKING] Drop support for [email protected], minimum version is now 5.0 (#14542)
  • [*] Depend on exact versions of monorepo dependencies instead of ^ range (#14553)
  • [*] [BREAKING] Add ESM wrapper for all of Jest's modules (#14661)
  • [babel-jest, babel-preset-jest] [BREAKING] Increase peer dependency of @babel/core to ^7.11 (#14109)
  • [jest-cli, jest-config, @jest/types] [BREAKING] Remove deprecated --init argument (#14490)
  • [docs] Fix typos in CHANGELOG.md and packages/jest-validate/README.md (#14640)
  • [docs] Don't use alias matchers in docs (#14631)

New Contributors

Full Changelog: v29.7.0...v30.0.0-alpha.1

v29.7.0

12 Sep 06:46
Compare
Choose a tag to compare

Features

  • [create-jest] Add npm init / yarn create initialiser for Jest projects (#14465)
  • [jest-validate] Allow deprecation warnings for unknown options (#14499)

Fixes

  • [jest-resolver] Replace unmatched capture groups in moduleNameMapper with empty string instead of undefined (#14507)
  • [jest-snapshot] Allow for strings as well as template literals in inline snapshots (#14465)
  • [@jest/test-sequencer] Calculate test runtime if perStats.duration is missing (#14473)

Performance

  • [@jest/create-cache-key-function] Cache access of NODE_ENV and BABEL_ENV (#14455)

Chore & Maintenance

  • [jest-cli] Move internal config initialisation logic to the create-jest package (#14465)

New Contributors

Full Changelog: v29.6.4...v29.7.0

v29.6.4

24 Aug 11:12
Compare
Choose a tag to compare

Fixes

  • [jest-core] Fix typo in scheduleAndRun performance marker (#14434)
  • [jest-environment-node] Make sure atob and btoa are writeable in Node 20 (#14446)
  • [jest-worker] Additional error wrapper for parentPort.postMessage to fix unhandled DataCloneError. (#14437)

New Contributors

Full Changelog: v29.6.3...v29.6.4

v29.6.3

21 Aug 12:42
Compare
Choose a tag to compare

Fixes

  • [expect, @jest/expect-utils] ObjectContaining support symbol as key (#14414)
  • [expect] Remove @types/node from dependencies (#14385)
  • [jest-core] Use workers in watch mode by default to avoid crashes (#14059 & #14085).
  • [jest-reporters] Update istanbul-lib-instrument dependency to v6. (#14401)
  • [jest-mock] Revert #13692 as it was a breaking change (#14429)
  • [jest-mock] Revert #13866 as it was a breaking change (#14429)
  • [jest-mock] Revert #13867 as it was a breaking change (#14429)
  • [@jest/reporters] Marks Reporter's hooks as optional (#14433)
  • [jest-runtime] Fix dynamic ESM import module bug when loaded module through jest.isolateModulesAsync (#14397)

Chore & Maintenance

  • [jest-changed-files, jest-circus, jest-console, @jest/core, @jest/runtime, @jest/transform] Use invariant and notEmpty from jest-util rather than own internal (#14366)

New Contributors

Full Changelog: v29.6.2...v29.6.3

v29.6.2

27 Jul 09:22
Compare
Choose a tag to compare

Fixes

  • [jest-circus] Fix snapshot matchers in concurrent tests when nr of tests exceeds maxConcurrency (#14335)
  • [@jest/core] When running global setup and teardown, do not try to change the message property of the thrown error object when the message property is unwritable (#14113)
  • [jest-snapshot] Move @types/prettier from dependencies to devDependencies (#14328)
  • [jest-snapshot] Throw an explicit error if Prettier v3 is used (#14367)
  • [jest-reporters] Add "skipped" and "todo" symbols to Github Actions Reporter (#14309)

Chore & Maintenance

  • [@jest/core] Use pluralize from jest-util rather than own internal (#14322)

New Contributors

Full Changelog: v29.6.1...v29.6.2