Skip to content

Releases: jestjs/jest

20.0.0

16 Aug 10:38
Compare
Choose a tag to compare
  • 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 to expect.assertions(). (#3379)
  • New this.equals function exposed to custom matchers. (#3469)
  • New valid-expect lint rule in eslint-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 separate jest-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 the babel field in package.json as a fallback.
  • Fixed jest-editor-support's parser to not crash on incomplete ASTs. (#3259)
  • Fixed jest-resolve to use is-builtin-module instead of resolve.isCore. (#2997)
  • Fixed jest-snapshot to normalize line endings in the serialize 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

16 Aug 10:38
Compare
Choose a tag to compare
  • 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

16 Aug 10:38
Compare
Choose a tag to compare
  • Breaking Change: Added a version for snapshots.
  • Breaking Change: Removed the mocksPattern configuration option, it never worked correctly.
  • Breaking Change: Renamed testPathDirs to roots 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

16 Aug 10:38
Compare
Choose a tag to compare
  • 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

16 Aug 10:38
Compare
Choose a tag to compare

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 and mockImpl. Use it or mockImplementation 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 and testResultsProcessor instead of using path.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 include test.js and spec.js files.
  • Fixes for babel-plugin-jest-hoist when using jest.mock with three arguments.
  • The JSON global in jest-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 forwards react-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.

17.0.3

16 Aug 10:38
Compare
Choose a tag to compare
  • Improved file-watching feature in jest-haste-map.
  • Added .toHaveLength matcher.
  • Improved .toContain matcher.

17.0.2

16 Aug 10:38
Compare
Choose a tag to compare
  • Fixed performance regression in module resolution.

17.0.1

16 Aug 10:38
Compare
Choose a tag to compare
  • Fixed pretty printing of big objects.
  • Fixed resolution of .native.js files in react-native projects.

17.0.0

16 Aug 10:37
Compare
Choose a tag to compare
  • 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 new transform option.
  • Added jest.resetAllMocks which replaces jest.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 in babel-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.

16.0.2

16 Aug 10:37
Compare
Choose a tag to compare
  • Symbols are now properly mocked when using jest-mock.
  • toHaveBeenCalledWith() works without arguments again.
  • Newlines in snapshots are now normalized across different operating systems.