Skip to content

24.0.0

Compare
Choose a tag to compare
@SimenB SimenB released this 16 Aug 10:38
· 3339 commits to main since this release

Features

  • [jest-each] [BREAKING] Add primitive pretty printing for interpolated titles (#7694)
  • [jest-runtime] Add jest.isolateModules for scoped module initialization (#6701)
  • [jest-diff] [BREAKING] Support diffing numbers and booleans instead of returning null for different ones (#7605)
  • [jest-diff] [BREAKING] Replace diff with diff-sequences package (#6961)
  • [jest-cli] [BREAKING] Only set error process error codes when they are non-zero (#7363)
  • [jest-config] [BREAKING] Deprecate setupTestFrameworkScriptFile in favor of new setupFilesAfterEnv (#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)
  • [jest-config] [BREAKING] Set default notifyMode to failure-change (#7024)
  • [jest-haste-map] [BREAKING] Remove support for @providesModule (#6104)
  • [jest-haste-map] [BREAKING] Replace internal data structures to improve performance (#6960)
  • [jest-haste-map] [BREAKING] Use relative paths to allow remote caching (#7020)
  • [jest-haste-map] [BREAKING] Remove name from hash in HasteMap.getCacheFilePath (#7218)
  • [babel-preset-jest] [BREAKING] Export a function instead of an object for Babel 7 compatibility (#7203)
  • [jest-haste-map] [BREAKING] Expose relative paths when getting the file iterator (#7321)
  • [jest-cli] [BREAKING] Run code transforms over global{Setup,Teardown} (#7562)
  • [jest-haste-map] Add hasteFS.getSize(path) (#7580)
  • [jest-cli] Print version ending in -dev when running a local Jest clone (#7582)
  • [jest-cli] Add Support for globalSetup and globalTeardown in projects (#6865)
  • [jest-runtime] Add extraGlobals to config to load extra global variables into the execution vm (#7454)
  • [jest-util] Export specialChars containing Unicode characters and ANSI escapes for console output (#7532)
  • [jest-config] Handle typescript (ts and tsx) by default (#7533)
  • [jest-validate] Add support for comments in package.json using a "//" key (#7295)
  • [jest-config] Add shorthand for watch plugins and runners (#7213)
  • [jest-jasmine2/jest-circus/jest-cli] Add test.todo (#6996)
  • [pretty-format] Option to not escape strings in diff messages (#5661)
  • [jest-haste-map] Add getFileIterator to HasteFS for faster file iteration (#7010)
  • [jest-config] Add readConfigs function, previously in jest-cli (#7096)
  • [jest-snapshot] Enable configurable snapshot paths (#6143)
  • [pretty-format] Support HTMLCollection and NodeList in DOMCollection plugin (#7125)
  • [jest-runtime] Pass the normalized configuration to script transformers (#7148)
  • [expect] Improve report when assertion fails, part 3 (#7152)
  • [jest-runtime] If require fails without a file extension, print all files that match with one (#7160)
  • [jest-haste-map] Make ignorePattern optional (#7166)
  • [jest-haste-map] Add getCacheFilePath to get the path to the cache file for a HasteMap instance (#7217)
  • [jest-runtime] Remove cacheDirectory from ignorePattern for HasteMap if not necessary (#7166)
  • [jest-validate] Add syntax to validate multiple permitted types (#7207)
  • [jest-config] Accept an array as as well as a string for testRegex ([#7209]#7209))
  • [expect/jest-matcher-utils] Improve report when assertion fails, part 4 (#7241)
  • [expect/jest-matcher-utils] Improve report when assertion fails, part 5 (#7557)
  • [expect] Check constructor equality in .toStrictEqual() (#7005)
  • [jest-util] Add jest.getTimerCount() to get the count of scheduled fake timers (#7285)
  • [jest-config] Add dependencyExtractor option to use a custom module to extract dependencies from files (#7313, #7349, #7350, #7362)
  • [jest-haste-map] Accept a getCacheKey method in hasteImplModulePath modules to reset the cache when the logic changes (#7350)
  • [jest-config] Add haste.computeSha1 option to compute the sha-1 of the files in the haste map (#7345)
  • [expect] expect(Infinity).toBeCloseTo(Infinity) Treats Infinity as equal in toBeCloseTo matcher (#7405)
  • [jest-worker] Add node worker-thread support to jest-worker (#7408)
  • [jest-config] Allow bail setting to be configured with a number allowing tests to abort after n of failures (#7335)
  • [jest-config] Allow % based configuration of --max-workers (#7494)
  • [jest-runner] Instantiate the test environment class with the current testPath (#7442)
  • [jest-config] Always resolve jest-environment-jsdom from jest-config (#7476)
  • [expect] Improve report when assertion fails, part 6 (#7621)
  • [jest-worker] Add enableWorkerThreads option to explicitly opt-in to worker_threads if available (#7681)

Fixes

  • [expect] Accept inherited properties in toHaveProperty matcher (#7686)
  • [jest-diff] Do not claim that -0 and 0 have no visual difference (#7605)
  • [jest-mock] Fix automock for numeric function names (#7653)
  • [jest-config] Ensure existsSync is only called with a string parameter (#7607)
  • [expect] toStrictEqual considers sparseness of arrays. (#7591)
  • [jest-cli] Fix empty coverage data for untested files (#7388)
  • [jest-cli] [BREAKING] Do not use text-summary coverage reporter by default if other reporters are configured (#7058)
  • [jest-mock] [BREAKING] Fix bugs with mock/spy result tracking of recursive functions (#6381)
  • [jest-haste-map] [BREAKING] Recover files correctly after haste name collisions are fixed (#7329)
  • [pretty-format] [BREAKING] Omit non-enumerable symbol properties (#7448)
  • [*] [BREAKING] Upgrade to Babel 7, dropping support for Babel 6 (#7016)
  • [jest-cli] Avoid watch mode causing bad terminal behavior in some cases (#7523)
  • [jest-runner/jest-worker] Fix missing console output in verbose mode (#6871)
  • [expect] Standardize file naming in expect (#7306)
  • [jest-each] Add empty array validation check (#7249)
  • [jest-cli] Interrupt tests if interactive watch plugin key is pressed (#7222)
  • [jest-each] Add each array validation check (#7033)
  • [jest-haste-map] Do not visit again files with the same sha-1 (#6990)
  • [jest-jasmine2] Fix memory leak in Error objects hold by the framework (#6965)
  • [jest-haste-map] Fixed Haste whitelist generation for scoped modules on Windows (#6980)
  • [jest-mock] Fix inheritance of static properties and methods in mocks (#7003)
  • [jest-mock] Fix mocking objects without Object.prototype in their prototype chain (#7003)
  • [jest-mock] Check _isMockFunction is true rather than truthy on potential mocks (#7017)
  • [jest-cli] Update jest-cli to show git ref in message when using changedSince (#7028)
  • [jest-jasmine2] Fix crash when test return Promise rejected with null (#7049)
  • [jest-runtime] Check _isMockFunction is true rather than truthy on potential global mocks (#7017)
  • [jest-jasmine] Show proper error message from async assert errors (#6821)
  • [jest-jasmine2] Better error message when a describe block is empty (#6372)
  • [jest-jasmine2] Pending calls inside async tests are reported as pending not failed (#6782)
  • [jest-circus] Better error message when a describe block is empty (#6372)
  • [jest-jasmine2] Add missing testLocationResults for xit and fit (#6482)
  • [expect] Return false from asymmetric matchers if received value isn’t string (#7107)
  • [jest-cli] Fix unhandled error when a bad revision is provided to changedSince (#7115)
  • [jest-config] Moved dynamically assigned cwd from jest-cli to default configuration in jest-config (#7146)
  • [jest-config] Fix getMaxWorkers on termux (#7154)
  • [jest-runtime] Throw an explicit error if js is missing from moduleFileExtensions (#7160)
  • [jest-runtime] Fix missing coverage when using negative glob pattern in testMatch (#7170)
  • [*] Ensure maxWorkers is at least 1 (was 0 in some cases where there was only 1 CPU) (#7182)
  • [jest-runtime] Fix transform cache invalidation when requiring a test file from multiple projects (#7186)
  • [jest-changed-files] Return correctly the changed files when using lastCommit=true on Mercurial repositories (#7228)
  • [babel-jest] Cache includes babel environment variables (#7239)
  • [jest-config] Use strings instead of RegExp instances in normalized configuration (#7251)
  • [jest-circus] Make sure to display real duration even if time is mocked (#7264)
  • [expect] Improves the failing message for toStrictEqual matcher. (#7224)
  • [expect] Improves the failing message for toEqual matcher. (#7325)
  • [jest-resolve] Fix not being able to resolve path to mapped file with custom platform (#7312)
  • [jest-message-util] Improve parsing of error messages for unusually formatted stack traces (#7319)
  • [jest-runtime] Ensure error message text is not lost on errors with code frames (#7319)
  • [jest-haste-map] Fix to resolve path that is start with words same as rootDir (#7324)
  • [expect] Fix toMatchObject matcher when used with Object.create(null) (#7334)
  • [jest-haste-map] Remove legacy condition for duplicate module detection (#7333)
  • [jest-haste-map] Fix require detection with trailing commas and ignore import typeof modules (#7385)
  • [jest-cli] Fix to set prettierPath via config file (#7412)
  • [expect] Test more precisely for class instance getters (#7477)
  • [jest-cli] Support dashed args (#7497)
  • [jest-cli] Fix to run in band tests if watch mode enable when runInBand arg used (#7518)
  • [jest-runtime] Fix mistake as test files when run coverage issue. (#7506)
  • [jest-cli] print info about passWithNoTests flag (#7309)
  • [pretty-format] Omit unnecessary symbol filter for object keys (#7457)
  • [jest-runtime] Fix requireActual on node_modules with mock present (#7404)
  • [jest-resolve] Fix isBuiltinModule to support versions of node without module.builtinModules (#7565)
  • [babel-jest] Set cwd to be resilient to it changing during the runtime of the tests (#7574)
  • [jest-snapshot] Write and read snapshots from disk even if fs is mocked (#7080)
  • [jest-config] Normalize config.cwd and config.rootDir using `realpath (#7598)
  • [jest-environment-node] Fix buffer property is not ArrayBuffer issue. (#7626)
  • [babel-plugin-jest-hoist] Ignore TS type annotations when looking for out-of-scope references (#7641)
  • [jest-config] Add name to project if one does not exist to pick correct resolver (#5862)
  • [jest-runtime] Pass watchPathIgnorePatterns to Haste instance (#7585)
  • [jest-runtime] Resolve mock files via Haste when using require.resolve (#7687)

Chore & Maintenance

  • [*] [BREAKING] Require Node.js 6+ for all packages (#7258)
  • [jest-util] [BREAKING] Remove long-deprecated globals for fake timers (#7285)
  • [*] [BREAKING] Upgrade to Micromatch 3 (#6650)
  • [*] [BREAKING] Remove regenerator-runtime injection (#7595)
  • [jest-worker] Disable worker_threads to avoid issues with libraries to ready for it (#7681)
  • [docs] Fix message property in custom matcher example to return a function instead of a constant. (#7426)
  • [jest-circus] Standardize file naming in jest-circus (#7301)
  • [docs] Add synchronous test.each setup (#7150)
  • [docs] Add this.extend to the Custom Matchers API reference (#7130)
  • [docs] Fix default value for coverageReporters value in configuration docs (#7126)
  • [docs] Add link for jest-extended in expect docs (#7078)
  • [jest-util] Add ErrorWithStack class (#7067)
  • [docs] Document --runTestsByPath CLI parameter (#7046)
  • [docs] Fix babel-core installation instructions (#6745)
  • [docs] Explain how to rewrite assertions to avoid large irrelevant diff (#6971)
  • [examples] add example using Babel 7 (#6983)
  • [docs] Replace shallow equality with referential identity in ExpectAPI.md (#6991)
  • [jest-changed-files] Refactor to use execa over child_process (#6987)
  • [*] Bump dated dependencies (#6978)
  • [scripts] Don’t make empty sub-folders for ignored files in build folder (#7001)
  • [docs] Add missing export statement in puppeteer_environment.js under docs/Puppeteer.md (#7127)
  • [docs] Removed useless expect.assertions in TestingAsyncCode.md (#7131)
  • [docs] Remove references to @providesModule which isn't supported anymore (#7147)
  • [docs] Update setupFiles documentation for clarity (#7187)
  • [docs] Change require.require* to jest.require* (#7210)
  • [jest-circus] Add readme.md (#7198)
  • [jest-editor-support] Remove from the repository (#7232)
  • [jest-test-typescript-parser] Remove from the repository (#7232)
  • [tests] Free tests from the dependency on value of FORCE_COLOR (#6585)
  • [*] Add babel plugin to make sure Jest is unaffected by fake Promise implementations (#7225)
  • [docs] Add correct default value for testUrl config option (#7277)
  • [docs] Remove duplicate code in MockFunctions (#7297)
  • [*] Add check for Facebook copyright headers on CI (#7370)
  • [*] Update Facebook copyright headers (#7589)
  • [jest-haste-map] Refactor dependencyExtractor and tests (#7385)
  • [docs] Clearify conditional setting of NODE_ENV (#7369)
  • [docs] Clarify conditional setting of NODE_ENV (#7369)
  • [*] Standardize file names (#7316, #7266, #7238, #7314, #7467, #7464), #7471)
  • [docs] Add testPathIgnorePatterns in CLI documentation (#7440)
  • [docs] Removed misleading text about describe() grouping together tests into a test suite (#7434)
  • [diff-sequences] Add performance benchmark to package (#7603)
  • [*] Replace as many Object.assign with object spread as possible (#7627)
  • [ci] Initial support for Azure Pipelines (#7556)

Performance

  • [jest-mock] Improve getType function performance. (#7159)