Skip to content

Releases: jestjs/jest

27.0.1

25 May 10:08
Compare
Choose a tag to compare

Fixes

  • [jest-environment-jsdom] Bump version of JSDOM to avoid deprecated request package (#11442)

27.0.0

25 May 08:18
Compare
Choose a tag to compare

Blog post

Features

  • [babel-jest] Add async transformation (#11192)
  • [jest-changed-files] Use '--' to separate paths from revisions (#11160)
  • [jest-circus] [BREAKING] Fail tests when multiple done() calls are made (#10624)
  • [jest-circus, jest-jasmine2] [BREAKING] Fail the test instead of just warning when describe returns a value (#10947)
  • [jest-config] [BREAKING] Default to Node testing environment instead of browser (JSDOM) (#9874)
  • [jest-config] [BREAKING] Use jest-circus as default test runner (#10686)
  • [jest-config] Add support for preset written in ESM (#11200)
  • [jest-config, jest-runtime] Support ESM for files other than .js and .mjs (#10823)
  • [jest-config, jest-runtime] [BREAKING] Use "modern" implementation as default for fake timers (#10874 & #11197)
  • [jest-config Allow passing forceNodeFilesystemAPI through to jest-haste-map (#11264)
  • [jest-config, jest-haste-map, jest-resolve, jest-runner, jest-runtime, jest-test-sequencer, jest-transform, jest-types] [BREAKING] Add custom HasteMap class implementation config option (#11107)
  • [jest-core] make TestWatcher extend emittery (#10324)
  • [jest-core] Run failed tests interactively the same way we do with snapshots (#10858)
  • [jest-core] more TestSequencer methods can be async (#10980)
  • [jest-core] Add support for testSequencer written in ESM (#11207)
  • [jest-core] Add support for globalSetup and globalTeardown written in ESM (#11267)
  • [jest-core] Add support for watchPlugins written in ESM (#11315)
  • [jest-core] Add support for runner written in ESM (#11232)
  • [jest-core] Add support for reporters written in ESM (#11427)
  • [jest-each] Add support for interpolation with object properties (#11388)
  • [jest-environment-node] Add AbortController to globals (#11182)
  • [@jest/fake-timers] Update to @sinonjs/fake-timers to v7 (#11198)
  • [jest-haste-map] Handle injected scm clocks (#10966)
  • [jest-haste-map] Add enableSymlinks configuration option to follow symlinks for test files (#9351)
  • [jest-repl, jest-runner] [BREAKING] Run transforms over environment (#8751)
  • [jest-repl] Add support for testEnvironment written in ESM (#11232)
  • [jest-runner] [BREAKING] set exit code to 1 if test logs after teardown (#10728)
  • [jest-runner] [BREAKING] Run transforms over runnner (#8823)
  • [jest-runner] [BREAKING] Run transforms over testRunnner (#8823)
  • [jest-runner] Possibility to use ESM for test environment (11033)
  • [jest-runner] Add support for testRunner written in ESM (#11232)
  • [jest-runtime] Detect reexports from CJS as named exports in ESM (#10988)
  • [jest-runtime] Support for async code transformations (#11191 & #11220)
  • [jest-reporters] Add static filepath property to all reporters (#11015)
  • [jest-snapshot] [BREAKING] Make prettier optional for inline snapshots - fall back to string replacement (#7792 & #11192)
  • [jest-snapshot] [BREAKING] Run transforms over snapshotResolver (#8751)
  • [jest-transform] Pass config options defined in Jest's config to transformer's process and getCacheKey functions (#10926)
  • [jest-transform] Add support for transformers written in ESM (#11163)
  • [jest-transform] [BREAKING] Do not export ScriptTransformer class, instead export the async function createScriptTransformer (#11163)
  • [jest-transform] Async code transformations (#9889)
  • [jest-transform] Support transpiled transformers (#11193)
  • [jest-transform] [BREAKING] requireAndTranspileModule always return a Promise, and the third parameter type is changed to RequireAndTranspileModuleOptions which accept applyInteropRequireDefault option (#11232)
  • [jest-transform] [BREAKING] createTranspilingRequire return function which return a Promise now (#11232)
  • [jest-util] add requireOrImportModule for importing CJS or ESM (#11199)
  • [jest-util] add applyInteropRequireDefault option on requireOrImportModule (#11232)
  • [jest-watcher] Added support for clearing the line when <C-u> is pressed in a watch mode pattern prompt (#11358)
  • [jest-worker] Add support for custom task queues and adds a PriorityQueue implementation. (#10921)
  • [jest-worker] Add in-order scheduling policy to jest worker (10902)
  • [pretty-format] Better print for sparse arrays (11326)
  • [pretty-print] Add option printBasicPrototype which determines whether or not the prototype should be printed for raw objects or arrays (#11441)

Fixes

  • [babel-plugin-jest-hoist] Add __dirname and __filename to whitelisted globals (#10903)
  • [expect] [BREAKING] Revise expect.not.objectContaining() to be the inverse of expect.objectContaining(), as documented. (#10708)
  • [expect] [BREAKING] Make toContain more strict with the received type (#10119 & #10929)
  • [expect] [BREAKING] matcherResult on JestAssertionError are now strings rather than functions (#10989)
  • [jest-circus] Fixed the issue of beforeAll & afterAll hooks getting executed even if it is inside a skipped describe block #10451
  • [jest-circus] Fix testLocation on Windows when using test.each (#10871)
  • [jest-cli] Use testFailureExitCode when bailing from a failed test (#10958)
  • [jest-cli] Print custom error if error thrown from global hooks is not an error already (#11003)
  • [jest-cli] Allow running multiple "projects" from programmatic API (#11307)
  • [jest-cli] Fix missing collectCoverage after init (#11353)
  • [jest-cli, jest-config, jest-types] Move all default values into jest-config (#9924)
  • [jest-config] [BREAKING] Change default file extension order by moving json behind ts and tsx (10572)
  • [jest-console] console.dir now respects the second argument correctly (#10638)
  • [jest-core] Don't report PerformanceObserver as open handle (#11123)
  • [jest-core] Use WeakRef to hold timers when detecting open handles (#11277)
  • [jest-core] Correctly detect open handles that were created in test functions using done callbacks (#11382)
  • [jest-core] Do not collect RANDOMBYTESREQUEST as open handles (#11278)
  • [jest-core] Wait briefly for open handles to close before flagging them when using --detectOpenHandles (#11429)
  • [jest-diff] [BREAKING] Use only named exports (#11371)
  • [jest-each] [BREAKING] Ignore excess words in headings ([#8766](https://g...
Read more

26.6.3

04 Nov 06:21
Compare
Choose a tag to compare

Fixes

  • [jest-resolve-dependencies] Continue dependency resolution if mock dependency can't be found (#10779)

26.6.2

02 Nov 12:53
Compare
Choose a tag to compare

Features

  • [jest-core] Add findRelatedTests and nonFlagArgs in allowed config options for updateConfigAndRun in watch plugins (#10659)

Fixes

  • [babel-plugin-jest-hoist] Preserve order of hoisted mock nodes within containing block (#10536)
  • [babel-plugin-jest-hoist] Hoist pure constants to support experimental JSX transform in hoisted mocks (#10723)
  • [babel-preset-jest] Update babel-preset-current-node-syntax to support top level await (#10747)
  • [expect] Revert "Fix objectContaining to work recursively into sub-objects (#10508)" (#10766)
  • [jest-circus, jest-jasmine2] fix: don't assume stack is always a string (#10697)
  • [jest-config] Fix bug introduced in watch mode by PR #10678 (#10692)
  • [jest-config] Throw correct error for missing preset modules (#10737)
  • [jest-resolve-dependencies] Resolve mocks as dependencies (#10713)
  • [jest-runtime] Handle file URLs in dynamic imports (#10744)
  • [jest-runtime, babel-jest] Pass more ESM options to @jest/transform (#10752)
  • [jest-runtime] Properly inject extraGlobals into the runtime (#10758)
  • [jest-transform] Link to ESM docs on syntax errors (#10748)

Chore & Maintenance

  • [docs] Add docs for using mocks in TypeScript (#10415)
  • [eslint-config-fb-strict] Move package from this repo to fbjs repo (#10739)
  • [examples] Update TypeScript example to show use of newer Jest types (#10399)
  • [jest-cli] chore: standardize files and folder names (#10698)

26.6.1

23 Oct 09:08
Compare
Choose a tag to compare

Features

  • [jest-runtime] Support named exports from CommonJS as named ES Module imports (#10673)
  • [jest-validate] Add support for recursiveDenylist option as an alternative to recursiveBlacklist (#10236)

Fixes

  • [expect] Fix objectContaining to work recursively into sub-objects (#10508)
  • [jest-cli, jest-core, jest-config, jest-types] Fix --onlyFailures flag to work in non-watch mode (#10678)
  • [jest-config] Fix for the jest.config.ts compiler to not interfere with tsconfig.json files (#10675)
  • [jest-message-util] Update to work properly with Node 15 (#10660)
  • [jest-mock] Allow to mock methods in getters (TypeScript 3.9 export) (#10156)

26.6.0

19 Oct 12:00
Compare
Choose a tag to compare

Features

  • [jest-cli, jest-config] Add support for the jest.config.ts configuration file (#10564)

Fixes

  • [jest-config] Simplify transform RegExp (#10207)
  • [jest-fake-timers] Lazily instantiate mock timers (#10551)
  • [jest-runtime] require.main is no longer undefined when using jest.resetModules (#10626)
  • [@jest/types] Add missing values for timers (#10632)

Chore & Maintenance

  • [docs] Add step for fetching backers.json file in website setup docs (#10631)
  • [docs] Add page detailing environment variables set by Jest (#10630)
  • [jest-circus] Refactor callAsyncCircusFn parameters (#10629)

26.5.3

11 Oct 17:51
Compare
Choose a tag to compare

Features

  • [jest-runtime] add support for dynamic import() from CommonJS (#10620)

Fixes

  • [jest-runner, jest-runtime] require.main should not be undefined with createRequire() (#10610)
  • [jest-runtime] add missing module.path property (#10615)
  • [jest-runtime] Add mainModule instance variable to runtime (#10621)
  • [jest-runtime] Evaluate Node core modules on dynamic import() (#10622)
  • [jest-validate] Show suggestion only when unrecognized cli param is longer than 1 character (#10604)
  • [jest-validate] Validate testURL as CLI option (#10595)

26.5.2

06 Oct 10:54
Compare
Choose a tag to compare

Fixes

  • [*] Revert usage of Escalade and rollback Yargs to v15 as it breaks Node 13 (#10599)
  • [jest-circus] Setup globals before emitting setup, and include Jest globals in the setup payload (#10598)
  • [jest-mock] Fix typings for mockResolvedValue, mockResolvedValueOnce, mockRejectedValue and mockRejectedValueOnce (#10600)

26.5.1

05 Oct 10:27
Compare
Choose a tag to compare

Fixes

  • [jest-circus] Handle older jest-runtime in jest-circus

26.5.0

05 Oct 09:31
Compare
Choose a tag to compare

Features

  • [jest-circus, jest-config, jest-runtime] Add new injectGlobals config and CLI option to disable injecting global variables into the runtime (#10484)
  • [jest-each] Fixes .each type to always be callable (#10447)
  • [jest-runner] Add support for moduleLoaders with default exports (#10541)
  • [@jest/create-cache-key-function] Added a new package for creating cache keys (#10587)

Fixes

  • [jest-circus, jest-jasmine2] Find correct location for test.each tests (#10413)
  • [jest-console] Add Console constructor to console object (#10502)
  • [jest-globals] Fix lifecycle hook function types (#10480)
  • [jest-runtime] Remove usage of vm.compileFunction due to a performance issue (#10586)

Chore & Maintenance

  • [jest-resolve] Replace read-pkg-up with escalade package (10558)
  • [jest-environment-jsdom] Update jsdom to 16.4.0 (10578)