Skip to content

Releases: jestjs/jest

24.5.0

16 Aug 10:39
Compare
Choose a tag to compare

Features

  • [jest-haste-map] Expose throwOnModuleCollision via config.haste (#8113)

Chore & Maintenance

  • [expect] Export Matchers interface from expect (#8093)

24.4.0

16 Aug 10:39
Compare
Choose a tag to compare

Features

  • [jest-resolve] Now supports PnP environment without plugins (#8094)

Fixes

  • [expect] Compare DOM nodes even if there are multiple Node classes (#8064)
  • [jest-worker] worker.getStdout() can return null (#8083)
  • [jest-worker] Re-attach stdout and stderr from new processes/threads created after retries (#8087)
  • [jest-reporters/jest-runner] Serialize changedFiles passed to workers (#8090)

Chore & Maintenance

  • [*] Make sure to include d.ts files in the tarball when building (#8086)

24.3.0

16 Aug 10:39
Compare
Choose a tag to compare

We skipped 24.2.0 because a draft was accidentally published. Please use 24.3.0 or a newer version instead.

Features

  • [expect]: Improve report when matcher fails, part 10 (#7960)
  • [expect]: Improve report when matcher fails, part 11 (#8008)
  • [expect]: Improve report when matcher fails, part 12 (#8033)
  • [expect]: Improve report when matcher fails, part 7 (#7866)
  • [expect]: Improve report when matcher fails, part 8 (#7876)
  • [expect]: Improve report when matcher fails, part 9 (#7940)
  • [jest-circus/jest-jasmine2] Warn if describe returns a value (#7852)
  • [jest-config] Print error information on preset normalization error (#7935)
  • [jest-get-type] Add isPrimitive function (#7708)
  • [jest-haste-map] Add skipPackageJson option (#7778)
  • [jest-util] Add isPromise (#7852)
  • [pretty-format] Support React.memo (#7891)

Fixes

  • [expect] Fix toStrictEqual not considering arrays with objects having undefined values correctly (#7938)
  • [expect] Fix custom async matcher stack trace (#7652)
  • [expect] Fix non-object received value in toHaveProperty (#7986, #8067)
  • [expect] Fix non-symmetric equal for Number (#7948)
  • [expect] Remove duck typing and obsolete browser support code when comparing DOM nodes and use DOM-Level-3 API instead (#7995)
  • [jest-changed-files] Fix getChangedFilesFromRoots to not return parts of the commit messages as if they were files, when the commit messages contained multiple paragraphs (#7961)
  • [jest-changed-files] Fix pattern for HG changed files (#8066)
  • [jest-changed-files] Improve default file selection for Mercurial repos (#7880)
  • [jest-circus] Fix bug with test.only (#7888)
  • [jest-circus]: Throw explicit error when errors happen after test is considered complete (#8005)
  • [jest-cli] Fix prototype pollution vulnerability in dependency (#7904)
  • [jest-cli] Refactor -o and --coverage combined (#7611)
  • [jest-environment-node] Add missing globals: TextEncoder and TextDecoder (#8022)
  • [jest-haste-map] Enforce uniqueness in names (mocks and haste ids) (#8002)
  • [jest-jasmine2]: Throw explicit error when errors happen after test is considered complete (#8005)
  • [jest-mock] Adds a type check to prototype to allow mocks of objects with a primitive prototype property. (#8040)
  • [jest-transform] Normalize config and remove unnecessary checks, convert TestUtils.js to TypeScript (#7801)
  • [jest-util]Make sure to not fail if unable to assign toStringTag to the process object, which is read only in Node 12 (#8050)
  • [jest-validate] Fix validating async functions (#7894)
  • [jest-worker] Fix jest-worker when using pre-allocated jobs (#7934)
  • [static] Remove console log '-' on the front page (#7977)

Chore & Maintenance

  • [*]: Setup building, linting and testing of TypeScript (#7808, #7855, #7951)
  • [@jest/console]: Extract custom console implementations from jest-util into a new separate package (#8030)
  • [@jest/core] Create new package, which is jest-cli minus yargs and prompts (#7696)
  • [@jest/core]: Migrate to TypeScript (#7998)
  • [@jest/fake-timers]: Extract FakeTimers class from jest-util into a new separate package (#7987)
  • [@jest/reporter]: New package extracted from jest-cli (#7902)
  • [@jest/reporters]: Migrate to TypeScript (#7994, #8045)
  • [@jest/source-map]: Extract getCallsite function from jest-util into a new separate package (#8029)
  • [@jest/test-result]: Extract TestResult types and helpers into a new separate package (#8034)
  • [@jest/transform]: Migrate to TypeScript (#7918, #7945)
  • [@jest/transform]: New package extracted from jest-runtime (#7915)
  • [@jest/types]: New package to handle shared types (#7834)
  • [babel-jest]: Migrate to TypeScript (#7862)
  • [babel-plugin-jest-hoist]: Migrate to TypeScript (#7898)
  • [diff-sequences]: Migrate to Typescript (#7820)
  • [docs] Add missing import to docs (#7928)
  • [docs] Update automock configuration, add note related to manual mocks (#8051)
  • [docs] Update/Organize TestSequencer and testSchedulerHelper code comments(#7984)
  • [docs]: Fix image paths in SnapshotTesting.md for current and version 24 (#7872)
  • [docs]: Improve runAllTimers doc (it exhausts the micro-task queue) (#8031)
  • [docs]: Update CONTRIBUTING.md to add information about running jest with jest-circus locally (#8013).
  • [expect]: Migrate to TypeScript (#7919, #8028)
  • [jest-changed-files]: Migrate to TypeScript (#7827)
  • [jest-circus]: Migrate to TypeScript (#7916)
  • [jest-cli]: Migrate to TypeScript (#8024)
  • [jest-diff]: Migrate to TypeScript (#7824, #8027)
  • [jest-docblock]: Migrate to TypeScript (#7836)
  • [jest-each]: Migrate to Typescript (#8007)
  • [jest-each]: Refactor into multiple files with better types (#8018)
  • [jest-environment-jsdom]: Migrate to TypeScript (#7985)
  • [jest-environment-node]: Migrate to TypeScript (#7985)
  • [jest-get-type]: Migrate to TypeScript (#7818)
  • [jest-haste-map]: Migrate to TypeScript (#7854, #7951)
  • [jest-jasmine2]: TS migration (#7970)
  • [jest-leak-detector]: Migrate to TypeScript (#7825)
  • [jest-matcher-utils]: Migrate to TypeScript (#7835)
  • [jest-message-util]: Migrate to TypeScript (#7834)
  • [jest-mock]: Migrate to TypeScript (#7847, #7850, #7971)
  • [jest-phabricator]: Migrate to TypeScript (#7965)
  • [jest-regex-util]: Migrate to TypeScript (#7822)
  • [jest-repl]: Migrate to TypeScript (#8000)
  • [jest-resolve-dependencies]: Migrate to TypeScript (#7922)
  • [jest-resolve]: Migrate to TypeScript (#7871)
  • [jest-runner]: Migrate to TypeScript (#7968)
  • [jest-runtime]: Migrate to TypeScript (#7964, #7988)
  • [jest-serializer]: Migrate to TypeScript (#7841)
  • [jest-snapshot]: Migrate to TypeScript ([#7899](#789...
Read more

24.1.0

16 Aug 10:39
Compare
Choose a tag to compare

Features

  • [jest-resolve]: Pass default resolver into custom resolvers (#7714)
  • [jest-cli]: global{Setup,Teardown} use default export with es modules (#7750)
  • [jest-runtime] Better error messages when the jest environment is used after teardown by async code (#7756)
  • [jest-jasmine2] Will now only execute at most 5 concurrent tests within the same testsuite when using test.concurrent (#7770)
  • [jest-circus] Same as [jest-jasmine2], only 5 tests will run concurrently by default (#7770)
  • [jest-config] A new maxConcurrency option allows to change the number of tests allowed to run concurrently (#7770)

Fixes

  • [jest-runtime] Fix for mocks not working with module name mapper (#7787)
  • [jest-cli] Break dependency cycle when using Jest programmatically (#7707)
  • [jest-config] Extract setupFilesAfterEnv from preset (#7724)
  • [jest-cli] Do not execute any globalSetup or globalTeardown if there are no tests to execute (#7745)
  • [jest-runtime] Lock down version of write-file-atomic (#7725)
  • [jest-cli] Print log entries when logging happens after test environment is torn down (#7731)
  • [jest-config] Do not use a uuid as name since that breaks caching (#7746)
  • [jest-config] Make sure normalize can consume Defaults without warnings (#7742)
  • [jest-config] Allow moduleFileExtensions without 'js' for custom runners (#7751)
  • [jest-cli] Load transformers before installing require hooks (#7752)
  • [jest-cli] Handle missing numTodoTests in test results (#7779)
  • [jest-runtime] Exclude setup/teardown files from coverage report (#7790)
  • [babel-jest] Throw an error if babel-jest tries to transform a file ignored by Babel (#7797)
  • [babel-plugin-jest-hoist] Ignore TS type references when looking for out-of-scope references (#7799)
  • [expect] fixed asymmetrical equality of cyclic objects (#7730)

Chore & Maintenance

  • [jest] Update jest-junit to ^6.2.1 (#7739)
  • [website] Fix broken help link on homepage (#7706)
  • [docs] Changed Babel setup documentation to correctly compile async/await (#7701)

24.0.0

16 Aug 10:38
Compare
Choose a tag to compare

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-...
Read more

23.6.0

16 Aug 10:38
Compare
Choose a tag to compare

Features

  • [jest-cli] Add changedSince to allowed watch mode configs (#6955)
  • [babel-jest] Add support for babel.config.js added in Babel 7.0.0 (#6911)
  • [jest-resolve] Add support for an experimental mapper option (Watchman crawler only) that adds virtual files to the Haste map (#6940)

Fixes

  • [jest-resolve] Only resolve realpath once in try-catch (#6925)
  • [expect] Fix TypeError in toBeInstanceOf on null or undefined (#6912)
  • [jest-jasmine2] Throw a descriptive error if the first argument supplied to a hook was not a function (#6917) and (#6931)
  • [jest-circus] Throw a descriptive error if the first argument supplied to a hook was not a function (#6917) and (#6931)
  • [expect] Fix variadic custom asymmetric matchers (#6898)
  • [jest-cli] Fix incorrect testEnvironmentOptions warning (#6852)
  • [jest-each] Prevent done callback being supplied to describe (#6843)
  • [jest-config] Better error message for a case when a preset module was found, but no jest-preset.js or jest-preset.json at the root (#6863)
  • [jest-haste-map] Catch crawler error when unsuccessfully reading directories (#6761)

Chore & Maintenance

  • [docs] Add custom toMatchSnapshot matcher docs (#6837)
  • [docs] Improve the documentation regarding preset configuration (#6864)
  • [docs] Clarify usage of --projects CLI option (#6872)
  • [docs] Correct failure-change notification mode (#6878)
  • [scripts] Don’t remove node_modules from subdirectories of presets in e2e tests (#6948)
  • [diff-sequences] Double-check number of differences in tests (#6953)

23.5.0

16 Aug 10:38
Compare
Choose a tag to compare

Features

  • [jest-cli] Add package name to NotifyReporter notification (#5898)
  • [jest-runner] print stack trace when process.exit is called from user code (#6714)
  • [jest-each] introduces %# option to add index of the test to its title (#6414)
  • [pretty-format] Support serializing DocumentFragment (#6705)
  • [jest-validate] Add recursive and recursiveBlacklist options for deep config checks (#6802)
  • [jest-cli] Check watch plugins for key conflicts (#6697)

Fixes

  • [jest-snapshot] Mark snapshots as obsolete when moved to an inline snapshot (#6773)
  • [jest-config] Fix --coverage with --findRelatedTests overwriting collectCoverageFrom options (#6736)
  • [jest-config] Update default config for testURL from 'about:blank' to 'http://localhost' to address latest JSDOM security warning. (#6792)
  • [jest-cli] Fix testMatch not working with negations (#6648)
  • [jest-cli] Don't report promises as open handles (#6716)
  • [jest-each] Add timeout support to parameterised tests (#6660)
  • [jest-cli] Improve the message when running coverage while there are no files matching global threshold (#6334)
  • [jest-snapshot] Correctly merge property matchers with the rest of the snapshot in toMatchSnapshot. (#6528)
  • [jest-snapshot] Add error messages for invalid property matchers. (#6528)
  • [jest-cli] Show open handles from inside test files as well (#6263)
  • [jest-haste-map] Fix a problem where creating folders ending with .js could cause a crash (#6818)

Chore & Maintenance

  • [docs] Document another option to avoid warnings with React 16 (#5258)
  • [docs] Add note explaining when jest.setTimeout should be called (#6817)
  • [docs] Fixed bug in example code (#6828)

23.4.2

16 Aug 10:38
Compare
Choose a tag to compare

Performance

  • [jest-changed-files] limit git and hg commands to specified roots (#6732)

Fixes

  • [jest-circus] Fix retryTimes so errors are reset before re-running (#6762)
  • [docs] Update expect.objectContaining() description (#6754)
  • [babel-jest] Make getCacheKey() take into account createTransformer options (#6699)
  • [jest-jasmine2] Use prettier through require instead of localRequire. Fixes matchInlineSnapshot where prettier dependencies like path and fs are mocked with jest.mock. (#6776)
  • [docs] Fix contributors link (#6711)
  • [website] Fix website versions page to link to correct language (#6734)
  • [expect] Update toContain suggestion to contain equal message (#6792)

23.4.1

16 Aug 10:38
Compare
Choose a tag to compare

Features

  • [jest-cli] Watch plugins now have access to a broader range of global configuration options in their updateConfigAndRun callbacks, so they can provide a wider set of extra features (#6473)
  • [jest-snapshot] babel-traverse is now passed to jest-snapshot explicitly to avoid unnecessary requires in every test

Fixes

  • [jest-haste-map] Optimize watchman crawler by using glob on initial query (#6689)
  • [pretty-format] Fix formatting of invalid Date objects (#6635)

23.4.0

16 Aug 10:38
Compare
Choose a tag to compare

Features

  • [jest-haste-map] Add computeDependencies flag to avoid opening files if not needed (#6667)
  • [jest-runtime] Support require.resolve.paths (#6471)
  • [jest-runtime] Support paths option for require.resolve (#6471)

Fixes

  • [jest-runner] Force parallel runs for watch mode, to avoid TTY freeze (#6647)
  • [jest-cli] properly reprint resolver errors in watch mode (#6407)
  • [jest-cli] Write configuration to stdout when the option was explicitly passed to Jest (#6447)
  • [jest-cli] Fix regression on non-matching suites (6657)
  • [jest-runtime] Roll back micromatch version to prevent regression when matching files (#6661)