Releases: jestjs/jest
Releases · jestjs/jest
20.0.3
20.0.1
- Add ansi-regex to pretty-format dependencies (#3498)
- Fix replacement in testMatch and moduleDirectories (#3538)
- Fix expect.hasAssertions() to throw when passed arguments (#3526)
- Fix stack traces without proper error messages (#3513)
- Fix support for custom extensions through haste packages (#3537)
- Fix test contexts between test functions (#3506)
20.0.0
- New
--projects
option to run one instance of Jest in multiple projects at the same time. (#3400) - New multi project runner (#3156)
- New --listTests flag. (#3441)
- New --showConfig flag. (#3296)
- New promise support for all
expect
matchers through.resolves
and.rejects
. (#3068) - New
expect.hasAssertions()
function similar toexpect.assertions()
. (#3379) - New
this.equals
function exposed to custom matchers. (#3469) - New
valid-expect
lint rule ineslint-plugin-jest
. (#3067) - New HtmlElement pretty-format plugin. (#3230)
- New Immutable pretty-format plugins. (#2899)
- New test environment per file setting through
@jest-environment
in the docblock. (#2859) - New feature that allows every configuration option to be set from the command line. (#3424)
- New feature to add custom reporters to Jest through
reporters
in the configuration. (#3349) - New feature to add expected and actual values to AssertionError. (#3217)
- New feature to map code coverage from transformers. (#2290)
- New feature to run untested code coverage in parallel. (#3407)
- New option to define a custom resolver. (#2998)
- New printing support for text and comment nodes in html pretty-format. (#3355)
- New snapshot testing FAQ (#3425)
- New support for custom platforms on jest-haste-map. (#3162)
- New support for mocking native async methods. (#3209)
- New guide on how to use Jest with any JavaScript framework. (#3243)
- New translation system for the Jest website.
- New collapsing watch mode usage prompt after first run. (#3078)
- Breaking Change: Forked Jasmine 2.5 into Jest's own test runner and rewrote large parts of Jasmine. (#3147)
- Breaking Change: Jest does not write new snapshots by default on CI. (#3456)
- Breaking Change: Moved the typescript parser from
jest-editor-support
into a separatejest-test-typescript-parser
package. (#2973) - Breaking Change: Replaced auto-loading of babel-polyfill with only regenerator-runtime, fixes a major memory leak. (#2755)
- Fixed
babel-jest
to look up thebabel
field inpackage.json
as a fallback. - Fixed
jest-editor-support
's parser to not crash on incomplete ASTs. (#3259) - Fixed
jest-resolve
to useis-builtin-module
instead ofresolve.isCore
. (#2997) - Fixed
jest-snapshot
to normalize line endings in theserialize
function. (#3002) - Fixed behavior of
--silent
flag. (#3003) - Fixed bug with watchers on macOS causing test to crash. (#2957)
- Fixed CLI
notify
option not taking precedence over config option. (#3340) - Fixed detection of the npm client in SummaryReporter to support Yarn. (#3263)
- Fixed done.fail not passing arguments (#3241)
- Fixed fake timers to restore after resetting mocks. (#2467)
- Fixed handling of babylon's parser options in
jest-editor-support
. (#3344) - Fixed Jest to properly cache transform results. (#3334)
- Fixed Jest to use human-readable colors for Jest's own snapshots. (#3119)
- Fixed jest-config to use UID for default cache folder. (#3380), (#3387)
- Fixed jest-runtime to expose inner error when it fails to write to the cache. (#3373)
- Fixed lifecycle hooks to make afterAll hooks operate the same as afterEach. (#3275)
- Fixed pretty-format to run plugins before serializing nested basic values. (#3017)
- Fixed return value of mocks so they can explicitly be set to return
undefined
. (#3354) - Fixed runner to run tests associated with snapshots when the snapshot changes. (#3025)
- Fixed snapshot serializer require, restructured pretty-format. (#3399)
- Fixed support for Babel 7 in babel-jest. (#3271)
- Fixed testMatch to find tests in .folders. (#3006)
- Fixed testNamePattern and testPathPattern to work better together. (#3327)
- Fixed to show reject reason when expecting resolve. (#3134)
- Fixed toHaveProperty() to use hasOwnProperty from Object (#3410)
- Fixed watch mode's screen clearing. (#2959) (#3294)
- Improved and consolidated Jest's configuration file resolution. (#3472)
- Improved documentation throughout the Jest website.
- Improved documentation to explicitly mention that snapshots must be reviewed. (#3203)
- Improved documentation to make it clear CRA users don't need to add dependencies. (#3312)
- Improved eslint-plugin-jest's handling of
expect
. (#3306) - Improved flow-coverage, eslint rules and test coverage within the Jest repository.
- Improved printing of
expect.assertions
error. (#3033) - Improved Windows test coverage of Jest.
- Refactored configs & transform (#3376)
- Refactored reporters to pass individual Tests to reporters. (#3289)
- Refactored TestRunner (#3166)
- Refactored watch mode prompts. (#3290)
- Deleted
jest-file-exists
. (#3105) - Removed
Config
type. (#3366) - Removed all usage of
jest-file-exists
. (#3101) - Adopted prettier on the Jest codebase.
19.0.1
- Fix infinite loop when using
--watch
with--coverage
. - Fixed
watchman
config option. - Fixed a bug in the jest-editor-support static analysis.
- Fixed eslint plugin warning.
- Fixed missing space in front of "Did you mean …?".
- Fixed path printing in the reporter on Windows.
19.0.0
- Breaking Change: Added a version for snapshots.
- Breaking Change: Removed the
mocksPattern
configuration option, it never worked correctly. - Breaking Change: Renamed
testPathDirs
toroots
to avoid confusion when configuring Jest. - Breaking Change: Updated printing of React elements to cause fewer changes when props change.
- Breaking Change: Updated snapshot format to properly escape data.
- Fixed --color to be recognized correctly again.
- Fixed
babel-plugin-jest-hoist
to work properly with type annotations in tests. - Fixed behavior for console.log calls and fixed a memory leak (#2539).
- Fixed cache directory path for Jest to avoid ENAMETOOLONG errors.
- Fixed change events to be emitted in jest-haste-map's watch mode. This fixes issues with Jest's new watch mode and react-native-packager.
- Fixed cli arguments to be used when loading the config from file, they were previously ignored.
- Fixed Jest to load json files that include a BOM.
- Fixed Jest to throw errors instead of ignoring invalid cli options.
- Fixed mocking behavior for virtual modules.
- Fixed mocking behavior with transitive dependencies.
- Fixed support for asymmetric matchers in
toMatchObject
. - Fixed test interruption and
--bail
behavior. - Fixed watch mode to clean up worker processes when a test run gets interrupted.
- Fixed whitespace to be highlighted in snapshots and assertion errors.
- Improved
babel-jest
plugin: babel is loaded lazily, istanbul comments are only added when coverage is used. - Improved error for invalid transform config.
- Improved moduleNameMapper to not overwrite mocks when many patterns map to the same file.
- Improved printing of skipped tests in verbose mode.
- Improved resolution code in jest-resolve.
- Improved to only show patch marks in assertion errors when the comparison results in large objects.
- New
--collectCoverageFrom
cli argument. - New
--coverageDirectory
cli argument. - New
expect.addSnapshotSerializer
to add custom snapshot serializers for tests. - New
jest.spyOn
. - New
testMatch
configuration option that accepts glob patterns. - New eslint-plugin-jest with no-disabled-tests, no-focuses-tests and no-identical-title rules and default configuration and globals.
- New expect.stringContaining asymmetric matcher.
- New feature to make manual mocks with nested folders work. For example
__mocks__/react-native/Library/Text.js
will now work as expected. - New feature to re-run tests through the notification when using
--notify
. - New jest-phabricator package to integrate Jest code coverage in phabriactor.
- New jest-validate package to improve configuration errors, help with suggestions of correct configuration and to be adopted in other libraries.
- New pretty-printing for asymmetric matchers.
- New RSS feed for Jest's blog.
- New way to provide a reducer to extract haste module ids.
- New website, new documentation, new color scheme and new homepage.
- Rewritten watch mode for instant feedback, better code quality and to build new features on top of it (#2362).
18.1.0
- Fixed console.log and fake timer behavior in node 7.3.
- Updated istanbul-api.
- Updated jest-diff equality error message.
- Disabled arrow keys when entering a pattern in watch mode to prevent broken behavior. Will be improved in a future release.
- Moved asymmetric matchers and equality functionality from Jasmine into jest-matchers.
- Removed jasmine and jest-snapshot dependency from jest-matchers.
- Removed unused global
context
variable. - Show a better error message if the config is invalid JSON.
- Highlight trailing whitespace in assertion diffs and snapshots.
- Jest now uses micromatch instead of minimatch.
- Added
-h
as alias for--help
.
18.0.0
See https://jestjs.io/blog/2016/12/15/2016-in-jest.html
- The testResultsProcessor function is now required to return the modified results.
- Removed
pit
andmockImpl
. Useit
ormockImplementation
instead. - Fixed re-running tests when
--bail
is used together with--watch
. pretty-format
is now merged into Jest.require('v8')
now works properly in a test context.- Jest now clears the entire scrollback in watch mode.
- Added
expect.any
,expect.anything
,expect.objectContaining
,expect.arrayContaining
,expect.stringMatching
. - Properly resolve
snapshotSerializers
,setupFiles
,transform
,testRunner
andtestResultsProcessor
instead of usingpath.resolve
. --testResultsProcessor
is now exposed through the cli.- Renamed
--jsonOutputFile
to--outputFile
. - Added
jest-editor-support
for vscode and Nuclide integration. - Fixed
test.concurrent
unhandled promise rejections. - The Jest website is now auto-deployed when merging into master.
- Updated
testRegex
to includetest.js
andspec.js
files. - Fixes for
babel-plugin-jest-hoist
when usingjest.mock
with three arguments. - The
JSON
global injest-environment-node
now comes from the vm context instead of the parent context. - Jest does not print stack traces from babel any longer.
- Fake timers are reset when
FakeTimers.useTimers()
is called. - Usage of Jest in watch mode can be hidden through
JEST_HIDE_USAGE
. - Added
expect.assertions(number)
which will ensure that a specified amount of assertions is made in one test. - Added
.toMatchSnapshot(?string)
feature to give snapshots a name. - Escape regex in snapshots.
jest-react-native
was deprecated and now forwardsreact-native
.- Added
.toMatchObject
matcher. - Further improve printing of large objects.
- Fixed
NaN% Failed
in the OS notification when using--notify
. - The first test run without cached timings will now use separate processes instead of running in band.
- Added
.toHaveProperty
matcher. - Fixed
Map
/Set
comparisons. test.concurrent
now works with--testNamePattern
.