Skip to content

v28.0.0

Compare
Choose a tag to compare
@SimenB SimenB released this 25 Apr 12:09
· 1132 commits to main since this release

Blog post: https://jestjs.io/blog/2022/04/25/jest-28

Features

  • [babel-jest] Export createTransformer function (#12399)
  • [expect] Expose AsymmetricMatchers, MatcherFunction and MatcherFunctionWithState interfaces (#12363, #12376)
  • [jest-circus] Support error logging before retry (#12201)
  • [jest-circus, jest-jasmine2] Allowed classes and functions as describe and it/test names (#12484)
  • [jest-cli, jest-config] [BREAKING] Remove testURL config, use testEnvironmentOptions.url instead (#10797)
  • [jest-cli, jest-core] Add --shard parameter for distributed parallel test execution (#12546)
  • [jest-cli] [BREAKING] Remove undocumented --timers option (#12572)
  • [jest-config] [BREAKING] Stop shipping jest-environment-jsdom by default (#12354)
  • [jest-config] [BREAKING] Stop shipping jest-jasmine2 by default (#12355)
  • [jest-config, @jest/types] Add ci to GlobalConfig (#12378)
  • [jest-config] [BREAKING] Rename moduleLoader to runtime (#10817)
  • [jest-config] [BREAKING] Rename extraGlobals to sandboxInjectedGlobals (#10817)
  • [jest-config] [BREAKING] Throw an error instead of showing a warning if multiple configs are used (#12510)
  • [jest-config] [BREAKING] Do not normalize long deprecated configuration options preprocessorIgnorePatterns, scriptPreprocessor, setupTestFrameworkScriptFile and testPathDirs (#12701)
  • [jest-cli, jest-core] Add --ignoreProjects CLI argument to ignore test suites by project name (#12620)
  • [jest-core] Pass project config to globalSetup/globalTeardown function as second argument (#12440)
  • [jest-core] Stabilize test runners with event emitters (#12641)
  • [jest-core, jest-watcher] [BREAKING] Move TestWatcher class to jest-watcher package (#12652)
  • [jest-core] Allow using Summary Reporter as stand-alone reporter (#12687)
  • [jest-environment-jsdom] [BREAKING] Upgrade jsdom to 19.0.0 (#12290)
  • [jest-environment-jsdom] [BREAKING] Add default browser condition to exportConditions for jsdom environment (#11924)
  • [jest-environment-jsdom] [BREAKING] Pass global config to Jest environment constructor for jsdom environment (#12461)
  • [jest-environment-jsdom] [BREAKING] Second argument context to constructor is mandatory (#12469)
  • [jest-environment-node] [BREAKING] Add default node and node-addon conditions to exportConditions for node environment (#11924)
  • [jest-environment-node] [BREAKING] Pass global config to Jest environment constructor for node environment (#12461)
  • [jest-environment-node] [BREAKING] Second argument context to constructor is mandatory (#12469)
  • [jest-environment-node] Add all available globals to test globals, not just explicit ones (#12642, #12696)
  • [@jest/expect] New module which extends expect with jest-snapshot matchers (#12404, #12410, #12418)
  • [@jest/expect-utils] New module exporting utils for expect (#12323)
  • [@jest/fake-timers] [BREAKING] Rename timers configuration option to fakeTimers (#12572)
  • [@jest/fake-timers] [BREAKING] Allow jest.useFakeTimers() and projectConfig.fakeTimers to take an options bag (#12572)
  • [jest-haste-map] [BREAKING] HasteMap.create now returns a promise (#12008)
  • [jest-haste-map] Add support for dependencyExtractor written in ESM (#12008)
  • [jest-mock] [BREAKING] Rename exported utility types ClassLike, FunctionLike, ConstructorLikeKeys, MethodLikeKeys, PropertyLikeKeys; remove exports of utility types ArgumentsOf, ArgsType, ConstructorArgumentsOf - TS builtin utility types ConstructorParameters and Parameters should be used instead (#12435, #12489)
  • [jest-mock] Improve isMockFunction to infer types of passed function (#12442)
  • [jest-mock] [BREAKING] Improve the usage of jest.fn generic type argument (#12489)
  • [jest-mock] Add support for auto-mocking async generator functions (#11080)
  • [jest-mock] Add contexts member to mock functions (#12601)
  • [@jest/reporters] Add GitHub Actions reporter (#11320, #12658)
  • [@jest/reporters] Pass reporterContext to custom reporter constructors as third argument (#12657)
  • [jest-resolve] [BREAKING] Add support for package.json exports (#11961, #12373)
  • [jest-resolve] Support package self-reference (#12682)
  • [jest-resolve, jest-runtime] Add support for data: URI import and mock (#12392)
  • [jest-resolve, jest-runtime] Add support for async resolver (#11540)
  • [jest-resolve] [BREAKING] Remove browser?: boolean from resolver options, conditions: ['browser'] should be used instead (#12707)
  • [jest-resolve] Expose JestResolver, AsyncResolver, SyncResolver, PackageFilter, PathFilter and PackageJSON types (#12707, (#12712)
  • [jest-runner] Allow setupFiles module to export an async function (#12042)
  • [jest-runner] Allow passing testEnvironmentOptions via docblocks (#12470)
  • [jest-runner] Expose CallbackTestRunner, EmittingTestRunner abstract classes and CallbackTestRunnerInterface, EmittingTestRunnerInterface to help typing third party runners (#12646, #12715)
  • [jest-runner] Lock version of source-map-support to 0.5.13 (#12720)
  • [jest-runtime] [BREAKING] Runtime.createHasteMap now returns a promise (#12008)
  • [jest-runtime] Calling jest.resetModules function will clear FS and transform cache (#12531)
  • [jest-runtime] [BREAKING] Remove Context type export, it must be imported from @jest/test-result (#12685)
  • [jest-runtime] Add import.meta.jest (#12698)
  • [@jest/schemas] New module for JSON schemas for Jest's config (#12384)
  • [@jest/source-map] Migrate from source-map to @jridgewell/trace-mapping (#12692)
  • [jest-transform] [BREAKING] Make it required for process() and processAsync() methods to always return structured data (#12638)
  • [jest-test-result] Add duration property to JSON test output (#12518)
  • [jest-watcher] [BREAKING] Make PatternPrompt class to take entityName as third constructor parameter instead of this._entityName (#12591)
  • [jest-worker] [BREAKING] Allow only absolute workerPath (#12343)
  • [jest-worker] [BREAKING] Default to advanced serialization when using child process workers (#10983)
  • [pretty-format] New maxWidth parameter (#12402)

Fixes

  • [*] Use sha256 instead of md5 as hashing algortihm for compatibility with FIPS systems (#12722)
  • [babel-jest] [BREAKING] Pass rootDir as root in Babel's options (#12689)
  • [expect] Move typings of .not, .rejects and .resolves modifiers outside of Matchers interface (#12346)
  • [expect] Throw useful error if expect.extend is called with invalid matchers (#12488)
  • [expect] Fix iterableEquality ignores other properties (#8359)
  • [expect] Fix print for the closeTo matcher (#12626)
  • [jest-changed-files] Improve changedFilesWithAncestor pattern for Mercurial SCM (#12322)
  • [jest-circus, @jest/types] Disallow undefined value in TestContext type (#12507)
  • [jest-config] Correctly detect CI environment and update snapshots accordingly (#12378)
  • [jest-config] Pass moduleTypes to ts-node to enforce CJS when transpiling (#12397)
  • [jest-config] [BREAKING] Add mjs and cjs to default moduleFileExtensions config (#12578)
  • [jest-config, jest-haste-map] Allow searching for tests in node_modules by exposing retainAllFiles (#11084)
  • [jest-core] [BREAKING] Exit with status 1 if no tests are found with --findRelatedTests flag (#12487)
  • [jest-core] Do not report unref-ed subprocesses as open handles (#12705)
  • [jest-each] %# is not replaced with index of the test case (#12517)
  • [jest-each] Fixes error message with incorrect count of missing arguments (#12464)
  • [jest-environment-jsdom] Make jsdom accessible to extending environments again (#12232)
  • [jest-environment-jsdom] Log JSDOM errors more cleanly (#12386)
  • [jest-environment-node] Add MessageChannel, MessageEvent to globals (#12553)
  • [jest-environment-node] Add structuredClone to globals (#12631)
  • [@jest/expect-utils] [BREAKING] Fix false positives when looking for undefined prop (#8923)
  • [jest-haste-map] Don't use partial results if file crawl errors (#12420)
  • [jest-haste-map] Make watchman existence check lazy+async (#12675)
  • [jest-jasmine2, jest-types] [BREAKING] Move all jasmine specific types from @jest/types to its own package (#12125)
  • [jest-jasmine2] Do not set duration to 0 for skipped tests (#12518)
  • [jest-matcher-utils] Pass maxWidth to pretty-format to avoid printing every element in arrays by default (#12402)
  • [jest-mock] Fix function overloads for spyOn to allow more correct type inference in complex object (#12442)
  • [jest-mock] Handle overridden Function.name property (#12674)
  • [@jest/reporters] Notifications generated by the --notify flag are no longer persistent in GNOME Shell. (#11733)
  • [@jest/reporters] Move missing icon file which is needed for NotifyReporter class. (#12593)
  • [@jest/reporters] Update v8-to-istanbul (#12697)
  • [jest-resolver] Call custom resolver with core node.js modules (#12654)
  • [jest-runner] Correctly resolve source-map-support (#12706)
  • [jest-worker] Fix Farm execution results memory leak (#12497)

Chore & Maintenance

  • [*] [BREAKING] Drop support for Node v10 and v15 and target first LTS 16.13.0 (#12220)
  • [*] [BREAKING] Drop support for [email protected], minimum version is now 4.3 (#11142, #12648)
  • [*] Bundle all .d.ts files into a single index.d.ts per module (#12345)
  • [*] Use globalThis instead of global (#12447)
  • [babel-jest] [BREAKING] Only export createTransformer (#12407)
  • [docs] Add note about not mixing done() with Promises (#11077)
  • [docs, examples] Update React examples to match with the new React guidelines for code examples (#12217)
  • [docs] Add clarity for module factory hoisting limitations (#12453)
  • [docs] Add more information about how code transformers work (#12407)
  • [docs] Add upgrading guide (#12633)
  • [expect] [BREAKING] Remove support for importing build/utils (#12323)
  • [expect] [BREAKING] Migrate to ESM (#12344)
  • [expect] [BREAKING] Snapshot matcher types are moved to @jest/expect (#12404)
  • [jest-cli] Update yargs to v17 (#12357)
  • [jest-config] [BREAKING] Remove getTestEnvironment export (#12353)
  • [jest-config] [BREAKING] Rename config option name to id (#11981)
  • [jest-create-cache-key-function] Added README.md file with basic usage instructions (#12492)
  • [@jest/core] Use index.ts instead of jest.ts as main export (#12329)
  • [jest-environment-jsdom] [BREAKING] Migrate to ESM (#12340)
  • [jest-environment-node] [BREAKING] Migrate to ESM (#12340)
  • [jest-haste-map] Remove legacy isRegExpSupported (#12676)
  • [@jest/fake-timers] Update @sinonjs/fake_timers to v9 (#12357)
  • [jest-jasmine2, jest-runtime] [BREAKING] Use Symbol to pass jest.setTimeout value instead of jasmine specific logic (#12124)
  • [jest-phabricator] [BREAKING] Migrate to ESM (#12341)
  • [jest-resolve] [BREAKING] Make requireResolveFunction argument mandatory (#12353)
  • [jest-runner] [BREAKING] Remove some type exports from @jest/test-result (#12353)
  • [jest-runner] [BREAKING] Second argument to constructor (Context) is not optional (#12640)
  • [jest-serializer] [BREAKING] Deprecate package in favour of using v8 APIs directly (#12391)
  • [jest-snapshot] [BREAKING] Migrate to ESM (#12342)
  • [jest-transform] Update write-file-atomic to v4 (#12357)
  • [jest-types] [BREAKING] Remove Config.Glob and Config.Path (#12406)
  • [jest] Use index.ts instead of jest.ts as main export (#12329)

Performance

  • [jest-haste-map] [BREAKING] Default to node crawler over shelling out to find if watchman is not enabled (#12320)

New Contributors

Full Changelog: v27.5.1...v28.0.0