- Add --changedFilesWithAncestor (#4070)
- Add --findRelatedFiles (#4131)
- Add --onlyChanged tests (#3977)
- Add
contextLines
option to jest-diff (#4152) - Add alternative serialize API for pretty-format plugins (#4114)
- Add displayName to MPR (#4327)
- Add displayName to TestResult (#4408)
- Add es5 build of pretty-format (#4075)
- Add extra info to no tests for changed files message (#4188)
- Add fake chalk in browser builds in order to support IE10 (#4367)
- Add jest.requireActual (#4260)
- Add maxWorkers to globalConfig (#4005)
- Add skipped tests support for jest-editor-support (#4346)
- Add source map support for better debugging experience (#3738)
- Add support for Error objects in toMatchObject (#4339)
- Add support for Immutable.Record in pretty-format (#3678)
- Add tests for extract_requires on export types (#4080)
- Add that toMatchObject can match arrays (#3994)
- Add watchPathIgnorePatterns to exclude paths to trigger test re-run in watch mode (#4331)
- Adding ancestorTitles property to JSON test output (#4293)
- Allow custom resolver to be used with[out] moduleNameMapper (#4174)
- Avoid parsing
.require(β¦)
method calls (#3777) - Avoid unnecessary function declarations and call in pretty-format (#3962)
- Avoid writing to stdout in default reporter if --json is enabled. Fixes #3941 (#3945)
- Better error handling for --config (#4230)
- Call consistent pretty-format plugins within Jest (#3800)
- Change babel-core to peerDependency for compatibility with Babel 7 (#4162)
- Change Promise detection code in jest-circus to support non-global Promise implementations (#4375)
- Changed files eager loading (#3979)
- Check whether we should output to stdout or stderr (#3953)
- Clarify what objects toContain and toContainEqual can be used on (#4307)
- Clean up resolve() logic. Provide useful names for variables and functions. Test that a directory exists before attempting to resolve files within it. (#4325)
- cleanupStackTrace (#3696)
- compare objects with Symbol keys (#3437)
- Complain if expect is passed multiple arguments (#4237)
- Completes nodeCrawl with empty roots (#3776)
- Consistent naming of files (#3798)
- Convert code base to ESM import (#3778)
- Correct summary message for flag --findRelatedTests. (#4309)
- Coverage thresholds can be set up for individual files (#4185)
- custom reporter error handling (#4051)
- Define separate type for pretty-format plugin Options (#3802)
- Delete confusing async keyword (#3679)
- Delete redundant branch in ReactElement and HTMLElement plugins (#3731)
- Don't format node assert errors when there's no 'assert' module (#4376)
- Don't print test summary in --silent (#4106)
- Don't try to build ghost packages (#3934)
- Escape double quotes in attribute values in HTMLElement plugin (#3797)
- Explain how to clear the cache (#4232)
- Factor out common code for collections in pretty-format (#4184)
- Factor out common code for markup in React plugins (#4171)
- Feature/internal resolve (#4315)
- Fix --logHeapUsage (#4176)
- Fix --showConfig to show all project configs (#4078)
- Fix --watchAll (#4254)
- Fix bug when setTimeout is mocked (#3769)
- Fix changedFilesWithAncestor (#4193)
- Fix colors for expected/stored snapshot message (#3702)
- Fix concurrent test failure (#4159)
- Fix for 4286: Compare Maps and Sets by value rather than order (#4303)
- fix forceExit (#4105)
- Fix grammar in React Native docs (#3838)
- Fix inconsistent name of complex values in pretty-format (#4001)
- Fix issue mocking bound method (#3805)
- Fix jest-circus (#4290)
- Fix lint warning in master (#4132)
- Fix linting (#3946)
- fix merge conflict (#4144)
- Fix minor typo (#3729)
- fix missing console.log messages (#3895)
- fix mock return value (#3933)
- Fix mocking for modules with folders on windows (#4238)
- Fix NODE_PATH resolving for relative paths (#3616)
- Fix options.moduleNameMapper override order with preset (#3565 (#3689)
- Fix React PropTypes warning in tests for Immutable plugin (#4412)
- Fix regression in mockReturnValueOnce (#3857)
- Fix sample code of mock class constructors (#4115)
- Fix setup-test-framework-test (#3773)
- fix typescript jest test crash (#4363)
- Fix watch mode (#4084)
- Fix Watchman on windows (#4018)
- Fix(babel): Handle ignored files in babel v7 (#4393)
- Fix(babel): Support upcoming beta (#4403)
- Fixed object matcher (#3799)
- Fixes #3820 use extractExpectedAssertionsErrors in jasmine setup
- Flow upgrade (#4355)
- Force message in matchers to always be a function (#3972)
- Format
describe
and usetest
instead ofit
alias (#3792) - global_config.js for multi-project runner (#4023)
- Handle async errors (#4016)
- Hard-fail if hasteImpl is throwing an error during initialization. (#3812)
- Ignore import type for extract_requires (#4079)
- Ignore indentation of data structures in jest-diff (#3429)
- Implement 'jest.requireMock' (#4292)
- Improve Jest phabricator plugin (#4195)
- Improve Seq and remove newline from non-min empty in Immutable plugin (#4241)
- Improved the jest reporter with snapshot info per test. (#3660)
- Include fullName in formattedAssertion (#4273)
- Integrated with Yarn workspaces (#3906)
- jest --all (#4020)
- jest-circus test failures (#3770)
- jest-circus Timeouts (#3760)
- jest-haste-map: add test case for broken handling of ignore pattern (#4047)
- jest-haste-map: add test+fix for broken platform module support (#3885)
- jest-haste-map: deprecate functional ignorePattern and use it in cache key (#4063)
- jest-haste-map: mock 'fs' with more idiomatic jest.mock() (#4046)
- jest-haste-map: only file IO errors should be silently ignored (#3816)
- jest-haste-map: throw when trying to get a duplicated module (#3976)
- jest-haste-map: watchman crawler: normalize paths (#3887)
- jest-runtime: atomic cache write, and check validity of data (#4088)
- Join lines with newline in jest-diff (#4314)
- Keep ARGV only in CLI files (#4012)
- let transformers adjust cache key based on mapCoverage (#4187)
- Lift requires (#3780)
- Log stack when reporting errors in jest-runtime (#3833)
- Make --listTests return a new line separated list when not using --json (#4229)
- Make build script printing small-terminals-friendly (#3892)
- Make error messages more explicit for toBeCalledWith assertions (#3913)
- Make jest-matcher-utils use ESM exports (#4342)
- Make jest-runner a standalone package. (#4236)
- Make Jestβs Test Runner configurable. (#4240)
- Make listTests always print to console.log (#4391)
- Make providesModuleNodeModules ignore nested node_modules directories
- Make sure function mocks match original arity (#4170)
- Make sure runAllTimers also clears all ticks (#3915)
- Make toBe matcher error message more helpful for objects and arrays (#4277)
- Make useRealTimers play well with timers: fake (#3858)
- Move getType from jest-matcher-utils to separate package (#3559)
- Multiroot jest-change-files (#3969)
- Output created snapshot when using --ci option (#3693)
- Point out you can use matchers in .toMatchObject (#3796)
- Prevent babelrc package import failure on relative current path (#3723)
- Print RDP details for windows builds (#4017)
- Provide better error checking for transformed content (#3807)
- Provide printText and printComment in markup.js for HTMLElement plugin (#4344)
- Provide regex visualization for testRegex (#3758)
- Refactor CLI (#3862)
- Refactor names and delimiters of complex values in pretty-format (#3986)
- Replace concat(Immutable) with Immutable as item of plugins array (#4207)
- Replace Jasmine with jest-circus (#3668)
- Replace match with test and omit redundant String conversion (#4311)
- Replace print with serialize in AsymmetricMatcher plugin (#4173)
- Replace print with serialize in ConvertAnsi plugin (#4225)
- Replace print with serialize in HTMLElement plugin (#4215)
- Replace print with serialize in Immutable plugins (#4189)
- Replace unchanging args with one config arg within pretty-format (#4076)
- Return UNDEFINED for undefined type in ReactElement plugin (#4360)
- Rewrite some read bumps in pretty-format (#4093)
- Run update method before installing JRE on Circle (#4318)
- Separated the snapshot summary creation from the printing to improve testability. (#4373)
- Set coverageDirectory during normalize phase (#3966)
- Setup custom reporters after default reporters (#4053)
- Setup for Circle 2 (#4149)
- Simplify readme (#3790)
- Simplify snapshots definition (#3791)
- skipNodeResolution config option (#3987)
- Small fixes to toHaveProperty docs (#3878)
- Sort attributes by name in HTMLElement plugin (#3783)
- Specify watchPathIgnorePatterns will only be available in Jest 21+ (#4398)
- Split TestRunner off of TestScheduler (#4233)
- Strict and explicit config resolution logic (#4122)
- Support maxDepth option in React plugins (#4208)
- Support SVG elements in HTMLElement plugin (#4335)
- Test empty Immutable collections with {min: false} option (#4121)
- test to debug travis failure in master (#4145)
- testPathPattern message test (#4006)
- Throw Error When Using Nested It Specs (#4039)
- Throw when moduleNameMapper points to inexistent module (#3567)
- Unified 'no tests found' message for non-verbose MPR (#4354)
- Update migration guide with jest-codemods transformers (#4306)
- Use "inputSourceMap" for coverage re-mapping. (#4009)
- Use "verbose" no test found message when there is only one project (#4378)
- Use babel transform to inline all requires (#4340)
- Use eslint plugins to run prettier (#3971)
- Use iterableEquality in spy matchers (#3651)
- Use modern HTML5 <!DOCTYPE> (#3937)
- Wrap
Error.captureStackTrace
in a try (#4035)
- Fix jest-haste-map's handling of duplicate module IDs. (#3647)
- Fix behavior of
enableAutomock()
when automock is set to false. (#3624) - Fix progress bar in windows. (#3626)
- Fix arrow typeahead on Windows. (#3563)
- Fix reporters 'default' setting. (#3562)
- Fix to make Jest fail when the coverage threshold not met. (#3554)
- 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)
- New
--projects
option to run one instance of Jest in multiple projects at the same time. (#3400) - New multi project runner (#3156)
- New keyboard/arrow selection for watch mode typeaheads. (#3386)
- 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 spacing in test name pattern typeahead (#3315)
- 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 typeahead filter cursor behavior. (#3392)
- 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.
- 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.
- 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 typeahead to filter cached test names added to watch mode.
- New typeahead to filter file names added to watch mode (#2324).
- 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).
- 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
.
See https://facebook.github.io/jest/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
.
- Improved file-watching feature in jest-haste-map.
- Added
.toHaveLength
matcher. - Improved
.toContain
matcher.
- Fixed performance regression in module resolution.
- Fixed pretty printing of big objects.
- Fixed resolution of
.native.js
files in react-native projects.
- Added
expect.extend
. - Properly resolve modules with platform extensions on react-native.
- Added support for custom snapshots serializers.
- Updated to Jasmine 2.5.2.
- Big diffs are now collapsed by default in snapshots and assertions. Added
--expand
(or-e
) to show the full diff. - Replaced
scriptPreprocessor
with the newtransform
option. - Added
jest.resetAllMocks
which replacesjest.clearAllMocks
. - Fixes for react-native preset.
- Fixes for global built in objects in
jest-environment-node
. - Create mock objects in the vm context instead of the parent context.
.babelrc
is now part of the transform cache key inbabel-jest
.- Fixes for docblock parsing with haste modules.
- Exit with the proper code when the coverage threshold is not reached.
- Implemented file watching in
jest-haste-map
. --json
now includes information about individual tests inside a file.
- Symbols are now properly mocked when using
jest-mock
. toHaveBeenCalledWith()
works without arguments again.- Newlines in snapshots are now normalized across different operating systems.
- Fix infinite loop.
- Previously failed tests are now always run first.
- A new concurrent reporter shows currently running tests, a test summary, a progress bar and estimated remaining time if possible.
- Improved CLI colors.
jest <pattern>
is now case-insensitive.- Added
it.only
,it.skip
,test.only
,test.skip
andxtest
. - Added
--testNamePattern=pattern
or-t <pattern>
to run individual tests in test files. - Jest now warns for duplicate mock files.
- Pressing
a
,o
,p
,q
orenter
while tests are running in the watch mode, the test run will be interrupted. --bail
now works together with--watch
.- Added
test.concurrent
for concurrent async tests. - Jest now automatically considers files and tests with the
.jsx
extension. - Added
jest.clearAllMocks
to clear all mocks manually. - Rewrote Jest's snapshot implementation.
jest-snapshot
can now be more easily integrated into other test runners and used in other projects. - This requires most snapshots to be updated when upgrading Jest.
- Objects and Arrays in snapshots are now printed with a trailing comma.
- Function names are not printed in snapshots any longer to reduce issues with code coverage instrumentation and different Node versions.
- Snapshots are now sorted using natural sort order.
- Snapshots are not marked as obsolete any longer when using
fit
or when an error is thrown in a test. - Finished migration of Jasmine matchers to the new Jest matchers.
- Pretty print
toHaveBeenLastCalledWith
,toHaveBeenCalledWith
,lastCalledWith
andtoBeCalledWith
failure messages. - Added
toBeInstanceOf
matcher. - Added
toContainEqual
matcher. - Added
toThrowErrorMatchingSnapshot
matcher. - Improved
moduleNameMapper
resolution. - Module registry fixes.
- Fixed invocation of the
setupTestFrameworkScriptFile
script to make it easier to use chai together with Jest. - Removed react-native special case in Jest's configuration.
- Added
--findRelatedTests <fileA> <fileB>
cli option to run tests related to the specified files. - Added
jest.deepUnmock
tobabel-plugin-jest-hoist
. - Added
jest.runTimersToTime
which is useful together with fake timers. - Improved automated mocks for ES modules compiled with babel.
- Fixed issues with test paths that include hyphens on Windows.
- Fixed
testEnvironment
resolution. - Updated watch file name pattern input.
- Pretty printer updates for React and global window objects.
jest-runtime
overwrites automocking from configuration files.- Improvements for watch mode on Windows.
- afterAll/afterEach/beforeAll/beforeEach can now return a Promise and be used together with async/await.
- Improved stack trace printing on Node 4.
- Fixed Jest with npm2 when using coverage.
- Updated toThrow and toThrowMatchers and aliased them to the same matcher.
- Improvements for watch mode.
- Fixed Symbol reassignment in tests would break Jest's matchers.
- Fixed
--bail
option.
- See https://facebook.github.io/jest/blog/2016/09/01/jest-15.html
- Jest by default now also recognizes files ending in
.spec.js
and.test.js
as test files. - Completely replaced most Jasmine matchers with new Jest matchers.
- Rewrote Jest's CLI output for test failures and summaries.
- Added
--env
option to override the default test environment. - Disabled automocking, fake timers and resetting the module registry by default.
- Added
--watchAll
, made--watch
interactive and added the ability to update snapshots and select test patterns in watch mode. - Jest uses verbose mode when running a single test file.
- Console messages are now buffered and printed along with the test results.
- Fix
testEnvironment
resolution to preferjest-environment-{name}
instead of{name}
only. This prevents a module colision when usingjsdom
as test environment. moduleNameMapper
now uses a resolution algorithm.- Improved performance for small test runs.
- Improved API documentation.
- Jest now works properly with directories that have special characters in them.
- Improvements to Jest's own test infra by merging integration and unit tests. Code coverage is now collected for Jest.
- Added
global.global
to the node environment. - Fixed babel-jest-plugin-hoist issues with functions called
mock
. - Improved jest-react-native preset with mocks for ListView, TextInput, ActivityIndicator and ScrollView.
- Added
collectCoverageFrom
to collect code coverage from untested files. - Rewritten code coverage support.
- Changed Jest's default cache directory.
- Fixed
jest-react-native
for react 15.3.0. - Updated react and react-native example to use
react-test-renderer
. - Started to refactor code coverage.
babel-jest
bugfix.
babel-jest
can now be used to compose a transformer.- Updated snapshot instructions to run
jest -u
ornpm test -- -u
. - Fixed
config
cli option to enable JSON objects as configuration. - Updated printing of preset path in the CLI.
- Official release of snapshot tests.
- Started to replace Jasmine matchers with Jest matchers:
toBe
,toBeFalsy
,toBeTruthy
,toBeNaN
,toBe{Greater,Less}Than{,OrEqual}
,toBeNull
,toBeDefined
,toBeUndefined
,toContain
,toMatch
,toBeCloseTo
were rewritten. - Rewrite of Jest's reporters.
- Experimental react-native support.
- Removed Jasmine 1 support from Jest.
- Transform caching improvements.
- Snapshot bugfixes.
- Timer bugfixes.
- Added
test
global function as an alias forit
. - Added
coveragePathIgnorePatterns
to the config. - Fixed printing of "JSX objects" in snapshots.
- Fixes for
--verbose
option and top levelit
calls. - Extended the node environment with more globals.
- testcheck now needs to be required explicitly through
require('jest-check')
. - Added
jest.deepUnmock
. - Fail test suite if it does not contain any tests.
- Added duration of individual tests in verbose mode.
- Added a
browser
config option to properly resolve npm packages with a browser field inpackage.json
if you are writing tests for client side apps - Added
jest-repl
. - Split up
jest-cli
intojest-runtime
andjest-config
. - Added a notification plugin that shows a test run notification
using
--notify
. - Refactored
TestRunner
intoSearchSource
and improved the "no tests found" message. - Added
jest.isMockFunction(jest.fn())
to test for mock functions. - Improved test reporter printing and added a test failure summary when
running many tests.
- Add support for property testing via testcheck-js.
- Added a webpack tutorial.
- Added support for virtual mocks through
jest.mock('Module', implementation, {virtual: true})
. - Added snapshot functionality through
toMatchSnapshot()
. - Redesigned website.
- Windows stability fixes.
- Mock module resolution fixes.
- Remove test files from code coverage.
- Jest is now also published in the
jest
package on npm. - Added
testRegex
to match for tests outside of specific folders. Deprecated bothtestDirectoryName
andtestFileExtensions
. it
can now return a Promise for async testing.pit
was deprecated.- Added
jest-resolve
as a standalone package based on the Facebook module resolution algorithm. - Added
jest-changed-files
as a standalone package to detect changed files in a git or hg repo. - Added
--setupTestFrameworkFile
to cli. - Added support for coverage thresholds. See http://facebook.github.io/jest/docs/api.html#coveragethreshold-object.
- Updated to jsdom 9.0.
- Updated and improved stack trace reporting.
- Added
module.filename
and removed the invalidmodule.__filename
field. - Further improved the
lastCalledWith
andtoBeCalledWith
custom matchers. They now print the most recent calls. - Fixed jest-haste-map on continuous integration systems.
- Fixes for hg/git integration.
- Added a re-try for the watchman crawler.
- Bug fixes when running a single test file and for scoped package names.
- Added custom equality matchers for Map/Set and iterables.
- Bug fixes
- Reimplemented
node-haste
asjest-haste-map
: jestjs#896 - Fixes for the upcoming release of nodejs 6.
- Removed global mock caching which caused negative side-effects on test runs.
- Updated Jasmine from 2.3.4 to 2.4.1.
- Fixed our Jasmine fork to work better with
Object.create(null)
. - Added a
--silent
flag to silence console messages during a test run. - Run a test file directly if a path is passed as an argument to Jest.
- Added support for the undocumented nodejs feature
module.paths
.
- Fixed
jest -o
error when Mercurial isn't installed on the system - Fixed Jasmine failure message when expected values were mutated after tests.
- Added support for Mercurial repositories when using
jest -o
- Added
mockImplementationOnce
API tojest.fn()
.
- New implementation of node-haste and rewrite of internal module loading and resolution. Fixed both startup and runtime performance. #599
- Jasmine 2 is now the default test runner. To keep using Jasmine 1, put
testRunner: "jasmine1"
into your configuration. - Added
jest-util
,jest-mock
,jest-jasmine1
,jest-jasmine2
,jest-environment-node
,jest-environment-jsdom
packages. - Added
babel-jest-preset
andbabel-jest
as packages.babel-jest
is now being auto-detected. - Added
babel-plugin-jest-hoist
which hoistsjest.unmock
,jest.mock
and the newjest.enableAutomock
andjest.disableAutomock
API. - Improved
babel-jest
integration andreact-native
testing. - Improved code coverage reporting when using
babel-jest
. - Added the
jest.mock('moduleName', moduleFactory)
feature.jest.mock
now gets hoisted by default.jest.doMock
was added to explicitly mock a module without the hoisting feature ofbabel-jest
. - Updated jsdom to 8.3.x.
- Improved responsiveness of the system while using
--watch
. - Clear the terminal window when using
--watch
. - By default,
--watch
will now only runs tests related to changed files.--watch=all
can be used to run all tests on file system changes. - Debounce
--watch
re-runs to not trigger test runs during a branch switch in version control. - Added
jest.fn()
andjest.fn(implementation)
as convenient shorcuts forjest.genMockFunction()
andjest.genMockFunction().mockImplementation()
. - Added an
automock
option to turn off automocking globally. - Added a "no tests found" message if no tests can be found.
- Jest sets
process.NODE_ENV
totest
unless otherwise specified. - Fixed
moduleNameMapper
config option when used with paths. - Fixed an error with Jasmine 2 and tests that
throw 'string errors'
. - Fixed issues with unmocking symlinked module names.
- Fixed mocking of boolean values.
- Fixed mocking of fields that start with an underscore ("private fields").
- Fixed unmocking behavior with npm3.
- Fixed and improved
--onlyChanged
option. - Fixed support for running Jest as a git submodule.
- Improved verbose logger output
- Fixed test runtime error reporting and stack traces.
- Improved
toBeCalled
Jasmine 2 custom matcher messages. - Improved error reporting when a syntax error occurs.
- Renamed HasteModuleLoader to Runtime.
- Jest now properly reports pending tests disabled with
xit
andxdescribe
. - Removed
preprocessCachingDisabled
config option. - Added a
testEnvironment
option to customize the sandbox environment. - Added support for
@scoped/name
npm packages. - Added an integration test runner for Jest that runs all tests for examples and packages.
- Performance improvements.
- jest now uses
chalk
instead of its own colors implementation.
--bail
now reports with the proper error code.- Fixed loading of the setup file when using jasmine2.
- Updated jsdom to 7.2.0.
- Added optional support for jasmine2 through the
testRunner
config option. - Fixed mocking support for Map, WeakMap and Set.
node
was added to the defaults inmoduleFileExtensions
.- Updated the list of node core modules that are properly being recognized by the module loader.
- Correctly map
process.on
into jsdom environments, fixes a bug introduced in jest 0.7.0.
- Fixed a memory leak with test contexts. Jest now properly cleans up
test environments after each test. Added
--logHeapUsage
to log memory usage after each test. Note: this is option is meant for debugging memory leaks and might significantly slow down your test run. - Removed
mock-modules
,node-haste
andmocks
virtual modules. This is a breaking change of undocumented public API. Usage of this API can safely be automatically updated through an automated codemod: - Example: http://astexplorer.net/#/zrybZ6UvRA
- Codemod: https://github.com/cpojer/js-codemod/blob/master/transforms/jest-update.js
- jscodeshift: https://github.com/facebook/jscodeshift
- Removed
navigator.onLine
andmockSetReadOnlyProperty
from the global jsdom environment. Usewindow.navigator.onLine = true;
in your test setup andObject.defineProperty
instead.
- Updated jsdom to 7.0.2.
- Use the current working directory as root when passing a jest config from the command line.
- Updated the React examples and getting started guide
- Modules now receive a
module.parent
field so unmocked modules don't assume they are run directly any longer.
- jest now reports the number of tests that were run instead of the number of test files.
- Added a
--json
option to print test results as JSON. - Changed the preprocessor API. A preprocessor now receives the script, file and config. The cache key function receives the script, file and stringified config to be able to create consistent hashes.
- Removed node-worker-pool in favor of node-worker-farm (#540).
toEqual
now also checks the internal class name of an object. This fixes invalid tests likeexpect([]).toEqual({})
which were previously passing.- Added the option to provide map modules to stub modules by providing the
moduleNameMapper
config option. - Allow to specify a custom
testRunner
in the configuration (#531). - Added a
--no-cache
option to make it easier to debug preprocessor scripts. - Fix code coverage on windows (#499).
- Cache test run performance and run slowest tests first to maximize worker utilization
- Update to jsdom 6.5.0
- Improve failure stack traces.
- Fix syntax error reporting.
- Add
--watch
option (#472).
- Fixed a bug with syntax errors in test files (#487).
- Fixed chmod error for preprocess-cache (#491).
- Support for the upcoming node 4.0 release (#490, #489).
- Upgraded node-worker-pool to 3.0.0, use the native
Promise
implementation. testURL
can be used to set the location of the jsdom environment.- Updated all of jest's dependencies, now using jsdom 6.3.
- jest now uses the native
Promise
implementation. - Fixed a bug when passed an empty
testPathIgnorePatterns
. - Moved preprocessor cache into the haste cache directory.
- Added
--noStackTrace
option to disable stack traces. - Jest now only works with iojs v2 and up. If you are still using node we recommend upgrading to iojs or keep using jest 0.4.0.
- Upgraded to jsdom 6.1.0 and removed all the custom jsdom overwrites.
- See commit history for changes in previous versions of jest.