Détail du package

jest-browser-globals

arshaw448MIT25.1.0-beta

Lets you run [Jest] in a browser. Works with [Mocha], which is expected to be in the global scope first.

readme

jest-browser-globals

Lets you run Jest in a browser. Works with Mocha, which is expected to be in the global scope first.

Makes the following available:

Installation

Run npm install --save-dev jest-browser-globals

In a test runner like Karma, include the built file in the global scope:

// karma.config.js

module.exports = {
  frameworks: [ 'mocha' ],
  files: [
    './node_modules/jest-browser-globals/build-es5/index.js'
    // other test files...
  ]
}

To run it in an HTML file, do something like this:

<!DOCTYPE html>
<html>
  <head>
    <meta charset='utf-8' />
    <link href='https://cdn.jsdelivr.net/npm/mocha@7.0.1/mocha.css' rel='stylesheet' />
    <script src='https://cdn.jsdelivr.net/npm/mocha@7.0.1/mocha.js'></script>
    <script>mocha.setup('bdd')</script>
    <script src='./node_modules/jest-browser-globals/build-es5/index.js'></script>
    <script>

      describe('cool thing', function() {
        test('that is works', function() {
          expect(5).toBe(6);
        });
      });

    </script>
  </head>
  <body>
    <div id='mocha'></div>
    <script>mocha.run()</script>
  </body>
</html>

Fork Info

This package has been created from a fork of the Jest Project. It aggregates the expect, jest-mock, and jest-each packages, attaches them to the window, and does various other things to ensure that Jest runs similarly to how it runs in Node. It also strips out lots of dependencies that only make sense in a Node environment, resulting in a slimmer build.

changelog

master

Features

  • [babel-plugin-jest-hoist] Show codeframe on static hoisting issues (#8865)
  • [babel-plugin-jest-hoist] Add BigInt to WHITELISTED_IDENTIFIERS (#8382)
  • [babel-preset-jest] Add @babel/plugin-syntax-bigint (#8382)
  • [expect] Add BigInt support to toBeGreaterThan, toBeGreaterThanOrEqual, toBeLessThan and toBeLessThanOrEqual (#8382)
  • [expect, jest-matcher-utils] Display change counts in annotation lines (#9035)
  • [expect, jest-snapshot] Support custom inline snapshot matchers (#9278)
  • [jest-config] Throw the full error message and stack when a Jest preset is missing a dependency (#8924)
  • [jest-config] [BREAKING] Set default display name color based on runner (#8689)
  • [jest-config] Merge preset globals with project globals (#9027)
  • [jest-config] Support .cjs config files (#9291)
  • [jest-config] [BREAKING] Support .mjs config files (#9431)
  • [jest-core] Support reporters as default exports (#9161)
  • [jest-core] Support --findRelatedTests paths case insensitivity on Windows (#8900)
  • [jest-diff] Add options for colors and symbols (#8841)
  • [jest-diff] [BREAKING] Export as ECMAScript module (#8873)
  • [jest-diff] Add includeChangeCounts and rename Indicator options (#8881)
  • [jest-diff] Add changeColor and patchColor options (#8911)
  • [jest-diff] Add trailingSpaceFormatter option and replace cyan with commonColor (#8927)
  • [jest-diff] Add firstOrLastEmptyLineReplacement option and export 3 diffLines functions (#8955)
  • [jest-environment] Add optional getVmContext next to runScript (#9252 & #9428)
  • [jest-environment-jsdom] Add fakeTimersLolex (#8925)
  • [jest-environment-node] Add fakeTimersLolex (#8925)
  • [jest-environment-node] Add queueMicrotask (#9140)
  • [jest-environment-node] Implement getVmContext (#9252 & #9428)
  • [@jest/fake-timers] Add Lolex as implementation of fake timers (#8897)
  • [jest-get-type] Add BigInt support. (#8382)
  • [jest-matcher-utils] Add BigInt support to ensureNumbers ensureActualIsNumber, ensureExpectedIsNumber (#8382)
  • [jest-matcher-utils] Ignore highlighting matched asymmetricMatcher in diffs (#9257)
  • [jest-reporters] Export utils for path formatting (#9162)
  • [jest-reporters] Provides global coverage thresholds as watermarks for istanbul (#9416)
  • [jest-runner] Warn if a worker had to be force exited (#8206)
  • [jest-runtime] [BREAKING] Do not export ScriptTransformer - it can be imported from @jest/transform instead (#9256)
  • [jest-runtime] Use JestEnvironment.getVmContext and vm.compileFunction if available to avoid the module wrapper (#9252 & #9428)
  • [jest-snapshot] Display change counts in annotation lines (#8982)
  • [jest-snapshot] [BREAKING] Improve report when the matcher has properties (#9104)
  • [jest-snapshot] Improve colors when snapshots are updatable (#9132)
  • [jest-snapshot] Ignore indentation for most serialized objects (#9203)
  • [jest-transform] Create createTranspilingRequire function for easy transpiling modules (#9194)
  • [jest-transform] [BREAKING] Return transformed code as a string, do not wrap in vm.Script (#9253)
  • [@jest/test-result] Create method to create empty TestResult (#8867)
  • [jest-worker] [BREAKING] Return a promise from end(), resolving with the information whether workers exited gracefully (#8206)
  • [jest-reporters] Transform file paths into hyperlinks (#8980)

Fixes

  • [expect] Display expectedDiff more carefully in toBeCloseTo (#8389)
  • [expect] Avoid incorrect difference for subset when toMatchObject fails (#9005)
  • [expect] Consider all RegExp flags for equality (#9167)
  • [expect] [BREAKING] Consider primitives different from wrappers instantiated with new (#9167)
  • [expect] Prevent maintaining RegExp state between multiple tests (#9289)
  • [expect] Fix subsetEquality false circular reference detection (#9322)
  • [jest-config] Use half of the available cores when watchAll mode is enabled (#9117)
  • [jest-config] Fix Jest multi project runner still cannot handle exactly one project (#8894)
  • [jest-console] Add missing console.group calls to NullConsole (#9024)
  • [jest-core] Don't include unref'd timers in --detectOpenHandles results (#8941)
  • [jest-core] Limit number of workers when creating haste maps in projects (#9259)
  • [jest-diff] Do not inverse format if line consists of one change (#8903)
  • [jest-diff] Rename some new options and change their default values (#9077)
  • [jest-environment-node] Fix TextEncoder.encode not referencing same global Uint8Array constructor (#9261)
  • [jest-fake-timers] getTimerCount will not include cancelled immediates (#8764)
  • [jest-fake-timers] Support util.promisify on setTimeout (#9180)
  • [jest-jasmine2, jest-circus] Improve error message format for Node's assert.fail (#9262)
  • [jest-leak-detector] [BREAKING] Use weak-napi instead of weak package (#8686)
  • [jest-mock] Fix for mockReturnValue overriding mockImplementationOnce (#8398)
  • [jest-reporters] Make node-notifier an optional dependency (#8918)
  • [jest-reporters] Make all arguments to methods on BaseReporter optional (#9159)
  • [jest-resolve]: Set MODULE_NOT_FOUND as error code when module is not resolved from paths (#8487)
  • [jest-resolve-dependencies] Handle dynamic dependencies correctly even when using module maps (#9303)
  • [jest-snapshot] Remove only the added newlines in multiline snapshots (#8859)
  • [jest-snapshot] Distinguish empty string from external snapshot not written (#8880)
  • [jest-snapshot] [BREAKING] Distinguish empty string from internal snapshot not written (#8898)
  • [jest-snapshot] [BREAKING] Remove report method and throw matcher errors (#9049)
  • [jest-snapshot] Omit irrelevant received properties when property matchers fail (#9198)
  • [jest-transform] Properly cache transformed files across tests (#8890)
  • [jest-transform] Don't fail the test suite when a generated source map is invalid (#9058)
  • [jest-types] [BREAKING] Use less null | undefined in config types (#9200)
  • [jest-util] Allow querying process.domain (#9136)
  • [pretty-format] Correctly detect memoized elements (#9196)
  • [pretty-format] Fix pretty-format to respect displayName on forwardRef (#9422)

Chore & Maintenance

  • [*] [BREAKING] Drop support for Node 6 (#8455)
  • [*] Add Node 12 to CI (#8411)
  • [*] [BREAKING] Upgrade to Micromatch v4 (#8852)
  • [babel-plugin-jest-hoist] [BREAKING] Use ESM exports (#8874)
  • [docs] Add alias and optional boolean value to coverage CLI Reference (#8996)
  • [docs] Fix broken link pointing to legacy JS file in "Snapshot Testing".
  • [docs] Add setupFilesAfterEnv and jest.setTimeout example (#8971)
  • [expect] Test that toStrictEqual is equivalent to Node's assert.deepStrictEqual (#9167)
  • [jest] [BREAKING] Use ESM exports (#8874)
  • [jest-cli] [BREAKING] Use ESM exports (#8874)
  • [jest-cli] [BREAKING] Remove re-exports from @jest/core (#8874)
  • [jest-diff] Remove the need to export splitLines0 function (#9151)
  • [jest-environment-jsdom] [BREAKING] Upgrade JSDOM from v11 to v15 (#8851)
  • [jest-haste-map] Upgrade to fsevents@2 (#9215)
  • [jest-reporters] [BREAKING] Upgrade Istanbul dependencies, which are used for code coverage (#9192)
  • [jest-util] [BREAKING] Remove deprecated exports (#8863)
  • [jest-validate] [BREAKING] Use ESM exports (#8874)
  • [jest-types] Mark InitialOptions as Partial (#8848)
  • [jest-config] Refactor normalize to be more type safe (#8848)

Performance

24.9.0

Features

  • [expect] Highlight substring differences when matcher fails, part 1 (#8448)
  • [expect] Highlight substring differences when matcher fails, part 2 (#8528)
  • [expect] Improve report when mock-spy matcher fails, part 1 (#8640)
  • [expect] Improve report when mock-spy matcher fails, part 2 (#8649)
  • [expect] Improve report when mock-spy matcher fails, part 3 (#8697)
  • [expect] Improve report when mock-spy matcher fails, part 4 (#8710)
  • [expect] Throw matcher error when received cannot be jasmine spy (#8747)
  • [expect] Improve report when negative CalledWith assertion fails (#8755)
  • [expect] Improve report when positive CalledWith assertion fails (#8771)
  • [expect] Display equal values for ReturnedWith similar to CalledWith (#8791)
  • [expect, jest-snapshot] Change color from green for some args in matcher hints (#8812)
  • [jest-snapshot] Highlight substring differences when matcher fails, part 3 (#8569)
  • [jest-core] Improve report when snapshots are obsolete (#8448)
  • [jest-cli] Improve chai support (with detailed output, to match jest exceptions) (#8454)
  • [*] Manage the global timeout with --testTimeout command line argument. (#8456)
  • [pretty-format] Render custom displayName of memoized components (#8546)
  • [jest-validate] Allow maxWorkers as part of the jest.config.js (#8565)
  • [jest-runtime] Allow passing configuration objects to transformers (#7288)
  • [@jest/core, @jest/test-sequencer] Support async sort in custom testSequencer (#8642)
  • [jest-runtime, @jest/fake-timers] Add jest.advanceTimersToNextTimer (#8713)
  • [@jest-transform] Extract transforming require logic within jest-core into @jest-transform (#8756)
  • [jest-matcher-utils] Add color options to matcherHint (#8795)
  • [jest-circus/jest-jasmine2] Give clearer output for Node assert errors (#8792)
  • [jest-runner] Export all types in the type signature of jest-runner (#8825)

Fixes

  • [jest-cli] Detect side-effect only imports when running --onlyChanged or --changedSince (#8670)
  • [jest-cli] Allow --maxWorkers to work with % input again (#8565)
  • [babel-plugin-jest-hoist] Expand list of whitelisted globals in global mocks (#8429)
  • [jest-core] Make watch plugin initialization errors look nice (#8422)
  • [jest-snapshot] Prevent inline snapshots from drifting when inline snapshots are updated (#8492)
  • [jest-haste-map] Don't throw on missing mapper in Node crawler (#8558)
  • [jest-core] Fix incorrect passWithNoTests warning (#8595)
  • [jest-snapshots] Fix test retries that contain snapshots (#8629)
  • [jest-mock] Fix incorrect assignments when restoring mocks in instances where they originally didn't exist (#8631)
  • [expect] Fix stack overflow when matching objects with circular references (#8687)
  • [jest-haste-map] Workaround a node >=12.5.0 bug that causes the process not to exit after tests have completed and cancerous memory growth (#8787)

Chore & Maintenance

  • [docs] Replace FlowType with TypeScript in CONTRIBUTING.MD code conventions
  • [jest-leak-detector] remove code repeat (#8438)
  • [docs] Add example to jest.requireActual (#8482)
  • [docs] Add example to jest.mock for mocking ES6 modules with the factory parameter (#8550)
  • [docs] Add information about using jest.doMock with ES6 imports (#8573)
  • [docs] Fix variable name in custom-matcher-api code example (#8582)
  • [docs] Fix example used in custom environment docs (#8617)
  • [docs] Updated react tutorial to refer to new package of react-testing-library (@testing-library/react) (#8753)
  • [docs] Updated imports of react-testing-library to @testing-library/react in website (#8757)
  • [jest-core] Add getVersion (moved from jest-cli) (#8706)
  • [docs] Fix MockFunctions example that was using toContain instead of toContainEqual (#8765)
  • [*] Make sure copyright header comment includes license (#8783)
  • [*] Check copyright and license as one joined substring (#8815)
  • [docs] Fix WatchPlugins jestHooks.shouldRunTestSuite example that receives an object (#8784)
  • [*] Enforce LF line endings (#8809)
  • [pretty-format] Delete obsolete link and simplify structure in README (#8824)
  • [docs] Fix broken transform link on webpack page (#9155)

Performance

  • [jest-watcher] Minor optimization for JestHook (#8746)
  • [@jest/reporters] Prevent runaway CPU useage with --notify on macOS (#8830)

24.8.0

Features

  • [jest-circus] Bind to Circus events via an optional event handler on any custom env (#8344)
  • [expect] Improve report when matcher fails, part 15 (#8281)
  • [jest-cli] Update --forceExit and "did not exit for one second" message colors (#8329)
  • [expect] Improve report when matcher fails, part 16 (#8306)
  • [jest-runner] Pass docblock pragmas to TestEnvironment constructor (#8320)
  • [docs] Add DynamoDB guide (#8319)
  • [expect] Improve report when matcher fails, part 17 (#8349)
  • [expect] Improve report when matcher fails, part 18 (#8356)
  • [expect] Improve report when matcher fails, part 19 (#8367)

Fixes

  • [jest-each] Fix bug with placeholder values (#8289)
  • [jest-snapshot] Inline snapshots: do not indent empty lines (#8277)
  • [@jest/runtime, @jest/transform] Allow custom transforms for JSON dependencies (#2578)
  • [jest-core] Make detectOpenHandles imply runInBand (#8283)
  • [jest-haste-map] Fix the mapper option which was incorrectly ignored (#8299)
  • [jest-jasmine2] Fix describe return value warning being shown if the describe function throws (#8335)
  • [jest-environment-jsdom] Re-declare global prototype of JSDOMEnvironment (#8352)
  • [jest-snapshot] Handle arrays when merging snapshots (#7089)
  • [expect] Extract names of async and generator functions (#8362)
  • [jest-runtime] Fix virtual mocks not being unmockable after previously being mocked (#8396)
  • [jest-transform] Replace special characters in transform cache filenames to support Windows (#8353)
  • [jest-config] Allow exactly one project (#7498)

Chore & Maintenance

  • [expect] Fix label and add opposite assertion for toEqual tests (#8288)
  • [docs] Mention Jest MongoDB Preset (#8318)
  • [@jest/reporters] Migrate away from istanbul-api (#8294)
  • [*] Delete obsolete emails tag from header comment in test files (#8377)
  • [expect] optimize compare nodes (#8368)
  • [docs] Fix typo in MockFunctionAPI.md (#8406)
  • [LICENSE] Follow copyright header guidelines and delete For Jest software (#8428)

Performance

  • [jest-runtime] Fix module registry memory leak (#8282)
  • [jest-resolve] optimize resolve module path (#8388)
  • [jest-resolve] cache current directory (#8412)
  • [jest-get-type] Simplify checking for primitive (#8416)

24.7.1

Fixes

  • [@jest/config] Normalize testSequencer to its absolute path (#8267)
  • [@jest/console] Print to stderr when calling console.error, console.warn or console.assert using the jest-runtime CLI (#8261)

24.7.0

Features

  • [@jest/core, @jest/test-sequencer] Move testSequencer to individual package @jest/test-sequencer (#8223)
  • [@jest/core, jest-cli, jest-config] Add option testSequencer allow user use custom sequencer. (#8223)

Fixes

  • [expect] Add negative equality tests for iterables (#8260)
  • [jest-haste-map] Resolve fs watcher EMFILE error (#8258)

Chore & Maintenance

  • [expect] Remove repetition of matcherName and options in matchers (#8224)

Performance

24.6.0

Features

  • [expect]: Improve report when matcher fails, part 13 (#8077)
  • [@jest/core] Filter API pre-filter setup hook (#8142)
  • [jest-snapshot] Improve report when matcher fails, part 14 (#8132)
  • [@jest/reporter] Display todo and skip test descriptions when verbose is true (#8038)
  • [jest-runner] Support default exports for test environments (#8163)
  • [pretty-format] Support React.Suspense (#8180)
  • [jest-snapshot] Indent inline snapshots (#8198)
  • [jest-config] Support colors in displayName configuration (#8025)

Fixes

  • [jest-circus] Fix test retries with beforeAll/beforeEach failures (#8227)
  • [expect] Fix circular references in iterable equality (#8160)
  • [jest-changed-files] Change method of obtaining git root (#8052)
  • [jest-each] Fix test function type (#8145)
  • [jest-fake-timers] getTimerCount not taking immediates and ticks into account (#8139)
  • [jest-runtime] Allow json file as manual mock (#8159)
  • [pretty-format] Print BigInt as a readable number instead of {} (#8138)
  • [jest-core] Fix ability to transform dependencies required from globalSetup script (#8143)
  • [@jest/reporters] Fix Cannot read property converageData of null (#8168)
  • [jest-worker] JEST_WORKER_ID starts at 1 (#8205)
  • [jest-config] Use default cwd even if config contains a cwd property (#7923)
  • [jest-resolve-dependencies]: Remove internal peer dependencies (#8215)
  • [jest-resolve]: Remove internal peer dependencies (#8215)
  • [jest-snapshot]: Remove internal peer dependencies (#8215)
  • [jest-resolve] Fix requireActual with moduleNameMapper (#8210)
  • [jest-haste-map] Fix haste map duplicate detection in watch mode (#8237)

Chore & Maintenance

  • [*] Remove flow from code base (#8061)
  • [*] Use property initializer syntax in Jest codebase (#8117)
  • [*] Move @types/node to the root package.json (#8129)
  • [*] Add documentation and tests related to auto-mocking (#8099)
  • [*] Add jest-watch-typeahead as a devDependency (#6449)
  • [*] upgrade TS to 3.4.0-dev* for incremental builds (#8149)
  • [docs] Improve description of optional arguments in ExpectAPI.md (#8126)

Performance

  • [jest-haste-map] Optimize haste map data structure for serialization/deserialization (#8171)
  • [jest-haste-map] Avoid persisting haste map or processing files when not changed (#8153)
  • [jest-core] Improve performance of SearchSource.findMatchingTests by 15% (#8184)
  • [jest-resolve] Optimize internal cache lookup performance (#8183)
  • [jest-core] Dramatically improve watch mode performance (#8201)
  • [jest-transform] Cache regular expression instead of creating anew for every file in ScriptTransformer (#8235)
  • [jest-core] Fix memory leak of source map info and minor performance improvements (#8234)
  • [jest-console] Fix memory leak by releasing console output reference when printed to stdout (#8233)
  • [jest-runtime] Use Map instead of Object for module registry (#8232)

24.5.0

Features

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

Chore & Maintenance

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

24.4.0

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.1

Fixes

  • [jest-cli] export functions compatible with import {default} (#8080)
  • [jest-worker]: Fix retries and error notification in workers (#8079)

Chore & Maintenance

  • [pretty-format]: Use react-is instead of manual $$typeof checks (#8060)

24.3.0

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)
  • [jest-util]: Migrate to TypeScript (#7844, #8021)
  • [jest-validate]: Migrate to TypeScript (#7991)
  • [jest-watcher]: Migrate to TypeScript (#7843)
  • [jest-worker]: Migrate to TypeScript (#7853)
  • [jest]: Migrate to TypeScript (#8024)
  • [pretty-format]: Migrate to TypeScript (#7809, #7809)

Performance

  • [jest-haste-map] Optimize haste map tracking of deleted files with Watchman. (#8056)

24.1.0

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

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]https://github.com/facebook/jest/pull/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)

23.6.0

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

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

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

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

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)

23.3.0

Features

  • [jest-cli] Allow watch plugin to be configured (#6603)
  • [jest-snapshot] Introduce toMatchInlineSnapshot and toThrowErrorMatchingInlineSnapshot matchers (#6380)

Fixes

  • [jest-regex-util] Improve handling already escaped path separators on Windows (#6523)
  • [jest-cli] Fix testNamePattern value with interactive snapshots (#6579)
  • [jest-cli] Fix enter to interrupt watch mode (#6601)

Chore & Maintenance

  • [website] Switch domain to https://jestjs.io (#6549)
  • [tests] Improve stability of yarn test on Windows (#6534)
  • [*] Transpile object shorthand into Node 4 compatible syntax (#6582)
  • [*] Update all legacy links to jestjs.io (#6622)
  • [docs] Add docs for 23.1, 23.2, and 23.3 (#6623)
  • [website] Only test/deploy website if relevant files are changed (#6626)
  • [docs] Describe behavior of resetModules option when set to false (#6641)

23.2.0

Features

  • [jest-each] Add support for keyPaths in test titles (#6457)
  • [jest-cli] Add jest --init option that generates a basic configuration file with a short description for each option (#6442)
  • [jest.retryTimes] Add jest.retryTimes() option that allows failed tests to be retried n-times when using jest-circus. (#6498)

Fixes

  • [docs] Fixed error in documentation for expect.not.arrayContaining(array). (#6491)
  • [jest-cli] Add check to make sure one or more tests have run before notifying when using --notify (#6495)
  • [jest-cli] Pass globalConfig as a parameter to globalSetup and globalTeardown functions (#6486)
  • [jest-config] Add missing options to the defaults object (#6428)
  • [expect] Using symbolic property names in arrays no longer causes the toEqual matcher to fail (#6391)
  • [expect] toEqual no longer tries to compare non-enumerable symbolic properties, to be consistent with non-symbolic properties. (#6398)
  • [jest-util] console.timeEnd now properly log elapsed time in milliseconds. (#6456)
  • [jest-mock] Fix MockNativeMethods access in react-native jest.mock() (#6505)
  • [jest-cli] Fix reporters for moduleName = 'default' (#6542)

Chore & Maintenance

  • [docs] Add jest-each docs for 1 dimensional arrays (#6444)

23.1.0

Features

  • [jest-each] Add pretty-format serialising to each titles (#6357)
  • [jest-cli] shouldRunTestSuite watch hook now receives an object with config, testPath and duration (#6350)
  • [jest-each] Support one dimensional array of data (#6351)
  • [jest-watch] create new package jest-watch to ease custom watch plugin development (#6318)
  • [jest-circus] Make hooks in empty describe blocks error (#6320)
  • Add a config/CLI option errorOnDeprecated which makes calling deprecated APIs throw hepful error messages (#6339)

Fixes

  • [jest-each] Fix pluralising missing arguments error (#6369)
  • [jest-each] Stop test title concatenating extra args (#6346)
  • [expect] toHaveBeenNthCalledWith/nthCalledWith gives wrong call messages if not matched (#6340)
  • [jest-each] Make sure invalid arguments to each points back to the user's code (#6347)
  • [expect] toMatchObject throws TypeError when a source property is null (#6313)
  • [jest-cli] Normalize slashes in paths in CLI output on Windows (#6310)
  • [jest-cli] Fix run beforeAll in excluded suites tests" mode. (#6234)
  • [jest-haste-map] Compute SHA-1s for non-tracked files when using Node crawler (#6264)

Chore & Maintenance

  • [docs] Improve documentation of mockClear, mockReset, and mockRestore (#6227)
  • [jest-each] Refactor each to use shared implementation with core (#6345)
  • [jest-each] Update jest-each docs for serialising values into titles (#6337)
  • [jest-circus] Add dependency on jest-each (#6309)
  • [filenames] Rename "integration-tests" to "e2e" (#6315)
  • [docs] Mention the use of commit hash with --changedSince flag (#6330)

23.0.1

Chore & Maintenance

  • [jest-jasemine2] Add dependency on jest-each (#6308)
  • [jest-each] Move jest-each into core Jest (#6278)
  • [examples] Update typescript example to using ts-jest (#6260)

Fixes

  • [pretty-format] Serialize inverse asymmetric matchers correctly (#6272)

23.0.0

Features

  • [expect] Expose getObjectSubset, iterableEquality, and subsetEquality (#6210)
  • [jest-snapshot] Add snapshot property matchers (#6210)
  • [jest-config] Support jest-preset.js files within Node modules (#6185)
  • [jest-cli] Add --detectOpenHandles flag which enables Jest to potentially track down handles keeping it open after tests are complete. (#6130)
  • [jest-jasmine2] Add data driven testing based on jest-each (#6102)
  • [jest-matcher-utils] Change "suggest to equal" message to be more advisory (#6103)
  • [jest-message-util] Don't ignore messages with vendor anymore (#6117)
  • [jest-validate] Get rid of jest-config dependency (#6067)
  • [jest-validate] Adds option to inject deprecationEntries (#6067)
  • [jest-snapshot] [BREAKING] Concatenate name of test, optional snapshot name and count (#6015)
  • [jest-runtime] Allow for transform plugins to skip the definition process method if createTransformer method was defined. (#5999)
  • [expect] Add stack trace for async errors (#6008)
  • [jest-jasmine2] Add stack trace for timeouts (#6008)
  • [jest-jasmine2] Add stack trace for thrown non-Errors (#6008)
  • [jest-runtime] Prevent modules from marking themselves as their own parent (#5235)
  • [jest-mock] Add support for auto-mocking generator functions (#5983)
  • [expect] Add support for async matchers (#5919)
  • [expect] Suggest toContainEqual (#5948)
  • [jest-config] Export Jest's default options (#5948)
  • [jest-editor-support] Move coverage to ProjectWorkspace.collectCoverage (#5929)
  • [jest-editor-support] Add coverage option to runner (#5836)
  • [jest-haste-map] Support extracting dynamic imports (#5883)
  • [expect] Improve output format for mismatchedArgs in mock/spy calls. (#5846)
  • [jest-cli] Add support for using --coverage in combination with watch mode, --onlyChanged, --findRelatedTests and more (#5601)
  • [jest-jasmine2] [BREAKING] Adds error throwing and descriptive errors to it/ test for invalid arguments. [jest-circus] Adds error throwing and descriptive errors to it/ test for invalid arguments (#5558)
  • [jest-matcher-utils] Add isNot option to matcherHint function (#5512)
  • [jest-config] Add <rootDir> to runtime files not found error report (#5693)
  • [expect] Make toThrow matcher pass only if Error object is returned from promises (#5670)
  • [expect] Add isError to utils (#5670)
  • [expect] Add inverse matchers (expect.not.arrayContaining, etc., #5517)
  • [expect] expect.extend now also extends asymmetric matchers (#5503)
  • [jest-mock] Update spyOnProperty to support spying on the prototype chain (#5753)
  • [jest-mock] Add tracking of return values in the mock property (#5752)
  • [jest-mock] Add tracking of thrown errors in the mock property (#5764)
  • [expect]Add nthCalledWith spy matcher (#5605)
  • [jest-cli] Add isSerial property that runners can expose to specify that they can not run in parallel (#5706)
  • [expect] Add .toBeCalledTimes and toHaveBeenNthCalledWith aliases (#5826)
  • [jest-cli] Interactive Snapshot Mode improvements (#5864)
  • [jest-editor-support] Add no-color option to runner (#5909)
  • [jest-jasmine2] Pretty-print non-Error object errors (#5980)
  • [jest-message-util] Include column in stack frames (#5889)
  • [expect] Introduce toStrictEqual (#6032)
  • [expect] Add return matchers (#5879)
  • [jest-cli] Improve snapshot summaries (#6181)
  • [expect] Include custom mock names in error messages (#6199)
  • [jest-diff] Support returning diff from oneline strings (#6221)
  • [expect] Improve return matchers (#6172)
  • [jest-cli] Overhaul watch plugin hooks names (#6249)
  • [jest-mock] [BREAKING] Include tracked call results in serialized mock (#6244)

Fixes

  • [jest-cli] Fix stdin encoding to utf8 for watch plugins. (#6253)
  • [expect] Better detection of DOM Nodes for equality (#6246)
  • [jest-cli] Fix misleading action description for F key when in "only failed tests" mode. (#6167)
  • [jest-worker] Stick calls to workers before processing them (#6073)
  • [babel-plugin-jest-hoist] Allow using console global variable (#6075)
  • [jest-jasmine2] Always remove node core message from assert stack traces (#6055)
  • [expect] Add stack trace when expect.assertions and expect.hasAssertions causes test failures. (#5997)
  • [jest-runtime] Throw a more useful error when trying to require modules after the test environment is torn down (#5888)
  • [jest-mock] [BREAKING] Replace timestamps with invocationCallOrder (#5867)
  • [jest-jasmine2] Install sourcemap-support into normal runtime to catch runtime errors (#5945)
  • [jest-jasmine2] Added assertion error handling inside afterAll hook (#5884)
  • [jest-cli] Remove the notifier actions in case of failure when not in watch mode. (#5861)
  • [jest-mock] Extend .toHaveBeenCalled return message with outcome (#5951)
  • [jest-runner] Assign process.env.JEST_WORKER_ID="1" when in runInBand mode (#5860)
  • [jest-cli] Add descriptive error message when trying to use globalSetup/globalTeardown file that doesn't export a function. (#5835)
  • [expect] Do not rely on instanceof RegExp, since it will not work for RegExps created inside of a different VM (#5729)
  • [jest-resolve] Update node module resolution algorithm to correctly handle symlinked paths (#5085)
  • [jest-editor-support] Update Settings to use spawn in shell option (#5658)
  • [jest-cli] Improve the error message when 2 projects resolve to the same config (#5674)
  • [jest-runtime] remove retainLines from coverage instrumentation (#5692)
  • [jest-cli] Fix update snapshot issue when using watchAll (#5696)
  • [expect] Fix rejects.not matcher (#5670)
  • [jest-runtime] Prevent Babel warnings on large files (#5702)
  • [jest-mock] Prevent mockRejectedValue from causing unhandled rejection (#5720)
  • [pretty-format] Handle React fragments better (#5816)
  • [pretty-format] Handle formatting of React.forwardRef and Context components (#6093)
  • [jest-cli] Switch collectCoverageFrom back to a string (#5914)
  • [jest-regex-util] Fix handling regex symbols in tests path on Windows (#5941)
  • [jest-util] Fix handling of NaN/Infinity in mock timer delay (#5966)
  • [jest-resolve] Generalise test for package main entries equivalent to ".". (#5968)
  • [jest-config] Ensure that custom resolvers are used when resolving the configuration (#5976)
  • [website] Fix website docs (#5853)
  • [expect] Fix isEqual Set and Map to compare object values and keys regardless of order (#6150)
  • [pretty-format] [BREAKING] Remove undefined props from React elements (#6162)
  • [jest-haste-map] Properly resolve mocked node modules without package.json defined (#6232)

Chore & Maintenance

  • [jest-runner] Move sourcemap installation from jest-jasmine2 to jest-runner (#6176)
  • [jest-cli] Use yargs's built-in version instead of rolling our own (#6215)
  • [docs] Add explanation on how to mock methods not implemented in JSDOM
  • [jest-jasmine2] Simplify Env.execute and TreeProcessor to setup and clean resources for the top suite the same way as for all of the children suites (#5885)
  • [babel-jest] [BREAKING] Always return object from transformer (#5991)
  • [*] Run Prettier on compiled output (#5858)
  • [jest-cli] Add fileChange hook for plugins (#5708)
  • [docs] Add docs on using jest.mock(...) (#5648)
  • [docs] Mention Jest Puppeteer Preset (#5722)
  • [docs] Add jest-community section to website (#5675)
  • [docs] Add versioned docs for v22.4 (#5733)
  • [docs] Improve Snapshot Testing Guide (#5812)
  • [jest-runtime] [BREAKING] Remove jest.genMockFn and jest.genMockFunction (#6173)
  • [jest-message-util] Avoid adding unnecessary indent to blank lines in stack traces (#6211)

22.4.2

Fixes

  • [jest-haste-map] Recreate Haste map when deserialization fails (#5642)

22.4.1

Fixes

  • [jest-haste-map] Parallelize Watchman calls in crawler (#5640)
  • [jest-editor-support] Update TypeScript definitions (#5625)
  • [babel-jest] Remove retainLines argument to babel. (#5594)

Features

  • [jest-runtime] Provide require.main property set to module with test suite (#5618)

Chore & Maintenance

  • [docs] Add note about Node version support (#5622)
  • [docs] Update to use yarn (#5624)
  • [docs] Add how to mock scoped modules to Manual Mocks doc (#5638)

22.4.0

Fixes

  • [jest-haste-map] Overhauls how Watchman crawler works fixing Windows (#5615)
  • [expect] Allow matching of Errors against plain objects (#5611)
  • [jest-haste-map] Do not read binary files in Haste, even when instructed to do so (#5612)
  • [jest-cli] Don't skip matchers for exact files (#5582)
  • [docs] Update discord links (#5586)
  • [jest-runtime] Align handling of testRegex on Windows between searching for tests and instrumentation checks (#5560)
  • [jest-config] Make it possible to merge transform option with preset (#5505)
  • [jest-util] Fix console.assert behavior in custom & buffered consoles (#5576)

Features

  • [docs] Add MongoDB guide (#5571)
  • [jest-runtime] Deprecate mapCoverage option. (#5177)
  • [babel-jest] Add option to return sourcemap from the transformer separately from source. (#5177)
  • [jest-validate] Add ability to log deprecation warnings for CLI flags. (#5536)
  • [jest-serializer] Added new module for serializing. Works using V8 or JSON (#5609)
  • [docs] Add a documentation note for project displayName configuration (#5600)

Chore & Maintenance

  • [docs] Update automatic mocks documentation (#5630)

jest 22.3.0

Fixes

  • [expect] Add descriptive error message to CalledWith methods when missing optional arguments (#5547)
  • [jest-cli] Fix inability to quit watch mode while debugger is still attached (#5029)
  • [jest-haste-map] Properly handle platform-specific file deletions (#5534)

Features

  • [jest-util] Add the following methods to the "console" implementations: assert, count, countReset, dir, dirxml, group, groupCollapsed, groupEnd, time, timeEnd (#5514)
  • [docs] Add documentation for interactive snapshot mode (#5291)
  • [jest-editor-support] Add watchAll flag (#5523)
  • [jest-cli] Support multiple glob patterns for collectCoverageFrom (#5537)
  • [docs] Add versioned documentation to the website (#5541)

Chore & Maintenance

  • [jest-config] Allow <rootDir> to be used with collectCoverageFrom (#5524)
  • [filenames] Standardize files names in "integration-tests" folder (#5513)

jest 22.2.2

Fixes

  • [babel-jest] Revert "Remove retainLines from babel-jest" (#5496)
  • [jest-docblock] Support multiple of the same @pragma. (#5154)

Features

  • [jest-worker] Assign a unique id for each worker and pass it to the child process. It will be available via process.env.JEST_WORKER_ID (#5494)

Chore & Maintenance

  • [filenames] Standardize file names in root (#5500)

jest 22.2.1

Fixes

  • [jest-config] "all" takes precedence over "lastCommit" (#5486)

jest 22.2.0

Features

  • [jest-runner] Move test summary to after coverage report (#4512)
  • [jest-cli] Added --notifyMode to specify when to be notified. (#5125)
  • [diff-sequences] New package compares items in two sequences to find a longest common subsequence. (#5407)
  • [jest-matcher-utils] Add comment option to matcherHint function (#5437)
  • [jest-config] Allow lastComit and changedFilesWithAncestor via JSON config (#5476)
  • [jest-util] Add deletion to process.env as well (#5466)
  • [jest-util] Add case-insensitive getters/setters to process.env (#5465)
  • [jest-mock] Add util methods to create async functions. (#5318)

Fixes

  • [jest-cli] Add trailing slash when checking root folder (#5464)
  • [jest-cli] Hide interactive mode if there are no failed snapshot tests (#5450)
  • [babel-jest] Remove retainLines from babel-jest (#5439)
  • [jest-cli] Glob patterns ignore non-require-able files (e.g. README.md) (#5199)
  • [jest-mock] Add backticks support (``) to mock a certain package via the __mocks__ folder. (#5426)
  • [jest-message-util] Prevent an ENOENT crash when the test file contained a malformed source-map. (#5405).
  • [jest] Add import-local to jest package. (#5353)
  • [expect] Support class instances in .toHaveProperty() and .toMatchObject matcher. (#5367)
  • [jest-cli] Fix npm update command for snapshot summary. (#5376, 5389)
  • [expect] Make rejects and resolves synchronously validate its argument. (#5364)
  • [docs] Add tutorial page for ES6 class mocks. (#5383)
  • [jest-resolve] Search required modules in node_modules and then in custom paths. (#5403)
  • [jest-resolve] Get builtin modules from node core. (#5411)
  • [jest-resolve] Detect and preserve absolute paths in moduleDirectories. Do not generate additional (invalid) paths by prepending each ancestor of cwd to the absolute path. Additionally, this fixes functionality in Windows OS. (#5398)

Chore & Maintenance

  • [jest-util] Implement watch plugins (#5399)

jest 22.1.4

Fixes

  • [jest-util] Add "debug" method to "console" implementations (#5350)
  • [jest-resolve] Add condition to avoid infinite loop when node module package main is ".". (#5344))

Features

  • [jest-cli] --changedSince: allow selectively running tests for code changed since arbitrary revisions. (#5312)

jest 22.1.3

Fixes

  • [jest-cli] Check if the file belongs to the checked project before adding it to the list, also checking that the file name is not explicitly blacklisted (#5341)
  • [jest-editor-support] Add option to spawn command in shell (#5340)

jest 22.1.2

Fixes

  • [jest-cli] Check if the file belongs to the checked project before adding it to the list (#5335)
  • [jest-cli] Fix EISDIR when a directory is passed as an argument to jest. (#5317)
  • [jest-config] Added restoreMocks config option. (#5327)

jest 22.1.1

Fixes

  • [*] Move from "process.exit" to "exit. (#5313)

jest 22.1.0

Features

  • [jest-cli] Make Jest exit without an error when no tests are found in the case of --lastCommit, --findRelatedTests, or --onlyChanged options having been passed to the CLI
  • [jest-cli] Add interactive snapshot mode (#3831)

Fixes

  • [jest-cli] Use import-local to support global Jest installations. (#5304)
  • [jest-runner] Fix memory leak in coverage reporting (#5289)
  • [docs] Update mention of the minimal version of node supported (#4947)
  • [jest-cli] Fix missing newline in console message (#5308)
  • [jest-cli] --lastCommit and --changedFilesWithAncestor now take effect even when --onlyChanged is not specified. (#5307)

Chore & Maintenance

  • [filenames] Standardize folder names under integration-tests/ (#5298)

jest 22.0.6

Fixes

  • [jest-jasmine2] Fix memory leak in snapshot reporting (#5279)
  • [jest-config] Fix breaking change in --testPathPattern (#5269)
  • [docs] Document caveat with mocks, Enzyme, snapshots and React 16 (#5258)

jest 22.0.5

Fixes

  • [jest-leak-detector] Removed the reference to weak. Now, parent projects must install it by hand for the module to work.
  • [expect] Fail test when the types of stringContaining and stringMatching matchers do not match. (#5069)
  • [jest-cli] Treat dumb terminals as noninteractive (#5237)
  • [jest-cli] jest --onlyChanged --changedFilesWithAncestor now also works with git. (#5189)
  • [jest-config] fix unexpected condition to avoid infinite recursion in Windows platform. (#5161)
  • [jest-config] Escape parentheses and other glob characters in rootDir before interpolating with testMatch. (#4838)
  • [jest-regex-util] Fix breaking change in --testPathPattern (#5230)
  • [expect] Do not override Error stack (with Error.captureStackTrace) for custom matchers. (#5162)
  • [pretty-format] Pretty format for DOMStringMap and NamedNodeMap (#5233)
  • [jest-cli] Use a better console-clearing string on Windows (#5251)

Features

  • [jest-jasmine] Allowed classes and functions as describe names. (#5154)
  • [jest-jasmine2] Support generator functions as specs. (#5166)
  • [jest-jasmine2] Allow spyOn with getters and setters. (#5107)
  • [jest-config] Allow configuration objects inside projects array (#5176)
  • [expect] Add support to .toHaveProperty matcher to accept the keyPath argument as an array of properties/indices. (#5220)
  • [docs] Add documentation for .toHaveProperty matcher to accept the keyPath argument as an array of properties/indices. (#5220)
  • [jest-runner] test environments are now passed a new options parameter. Currently this only has the console which is the test console that Jest will expose to tests. (#5223)
  • [jest-environment-jsdom] pass the options.console to a custom instance of virtualConsole so jsdom is using the same console as the test. (#5223)

Chore & Maintenance

  • [docs] Describe the order of execution of describe and test blocks. (#5217, #5238)
  • [docs] Add a note on moduleNameMapper ordering. (#5249)

jest 22.0.4

Fixes

  • [jest-cli] New line before quitting watch mode. (#5158)

Features

  • [babel-jest] moduleFileExtensions not passed to babel transformer. (#5110)

Chore & Maintenance

  • [*] Tweaks to better support Node 4 (#5142)

jest 22.0.2 && 22.0.3

Chore & Maintenance

  • [*] Tweaks to better support Node 4 (#5134)

jest 22.0.1

Fixes

  • [jest-runtime] fix error for test files providing coverage. (#5117)

Features

  • [jest-config] Add forceCoverageMatch to allow collecting coverage from ignored files. (#5081)

jest 22.0.0

Fixes

  • [jest-resolve] Use module.builtinModules as BUILTIN_MODULES when it exists
  • [jest-worker] Remove debug and inspect flags from the arguments sent to the child (#5068)
  • [jest-config] Use all --testPathPattern and <regexForTestFiles> args in testPathPattern (#5066)
  • [jest-cli] Do not support --watch inside non-version-controlled environments (#5060)
  • [jest-config] Escape Windows path separator in testPathPattern CLI arguments (#5054)
  • [jest-jasmine] Register sourcemaps as node environment to improve performance with jsdom (#5045)
  • [pretty-format] Do not call toJSON recursively (#5044)
  • [pretty-format] Fix errors when identity-obj-proxy mocks CSS Modules (#4935)
  • [babel-jest] Fix support for namespaced babel version 7 (#4918)
  • [expect] fix .toThrow for promises (#4884)
  • [jest-docblock] pragmas should preserve urls (#4837)
  • [jest-cli] Check if npm_lifecycle_script calls Jest directly (#4629)
  • [jest-cli] Fix --showConfig to show all configs (#4494)
  • [jest-cli] Throw if maxWorkers doesn't have a value (#4591)
  • [jest-cli] Use fs.realpathSync.native if available (#5031)
  • [jest-config] Fix --passWithNoTests (#4639)
  • [jest-config] Support rootDir tag in testEnvironment (#4579)
  • [jest-editor-support] Fix --showConfig to support jest 20 and jest 21 (#4575)
  • [jest-editor-support] Fix editor support test for node 4 (#4640)
  • [jest-mock] Support mocking constructor in mockImplementationOnce (#4599)
  • [jest-runtime] Fix manual user mocks not working with custom resolver (#4489)
  • [jest-util] Fix runOnlyPendingTimers for setTimeout inside setImmediate (#4608)
  • [jest-message-util] Always remove node internals from stacktraces (#4695)
  • [jest-resolve] changes method of determining builtin modules to include missing builtins (#4740)
  • [pretty-format] Prevent error in pretty-format for window in jsdom test env (#4750)
  • [jest-resolve] Preserve module identity for symlinks (#4761)
  • [jest-config] Include error message for preset json (#4766)
  • [pretty-format] Throw PrettyFormatPluginError if a plugin halts with an exception (#4787)
  • [expect] Keep the stack trace unchanged when PrettyFormatPluginError is thrown by pretty-format (#4787)
  • [jest-environment-jsdom] Fix asynchronous test will fail due to timeout issue. (#4669)
  • [jest-cli] Fix --onlyChanged path case sensitivity on Windows platform (#4730)
  • [jest-runtime] Use realpath to match transformers (#5000)
  • [expect] [BREAKING] Replace identity equality with Object.is in toBe matcher (#4917)

Features

  • [jest-message-util] Add codeframe to test assertion failures (#5087)
  • [jest-config] Add Global Setup/Teardown options (#4716)
  • [jest-config] Add testEnvironmentOptions to apply to jsdom options or node context. (#5003)
  • [jest-jasmine2] Update Timeout error message to jest.timeout and display current timeout value (#4990)
  • [jest-runner] Enable experimental detection of leaked contexts (#4895)
  • [jest-cli] Add combined coverage threshold for directories. (#4885)
  • [jest-mock] Add timestamps to mock state. (#4866)
  • [eslint-plugin-jest] Add prefer-to-have-length lint rule. (#4771)
  • [jest-environment-jsdom] [BREAKING] Upgrade to JSDOM@11 (#4770)
  • [jest-environment-*] [BREAKING] Add Async Test Environment APIs, dispose is now teardown (#4506)
  • [jest-cli] Add an option to clear the cache (#4430)
  • [babel-plugin-jest-hoist] Improve error message, that the second argument of jest.mock must be an inline function (#4593)
  • [jest-snapshot] [BREAKING] Concatenate name of test and snapshot (#4460)
  • [jest-cli] [BREAKING] Fail if no tests are found (#3672)
  • [jest-diff] Highlight only last of odd length leading spaces (#4558)
  • [jest-docblock] Add docblock.print() (#4517)
  • [jest-docblock] Add strip (#4571)
  • [jest-docblock] Preserve leading whitespace in docblock comments (#4576)
  • [jest-docblock] remove leading newlines from parswWithComments().comments (#4610)
  • [jest-editor-support] Add Snapshots metadata (#4570)
  • [jest-editor-support] Adds an 'any' to the typedef for updateFileWithJestStatus (#4636)
  • [jest-editor-support] Better monorepo support (#4572)
  • [jest-environment-jsdom] Add simple rAF polyfill in jsdom environment to work with React 16 (#4568)
  • [jest-environment-node] Implement node Timer api (#4622)
  • [jest-jasmine2] Add testPath to reporter callbacks (#4594)
  • [jest-mock] Added support for naming mocked functions with .mockName(value) and .mockGetName() (#4586)
  • [jest-runtime] Add module.loaded, and make module.require not enumerable (#4623)
  • [jest-runtime] Add module.parent (#4614)
  • [jest-runtime] Support sourcemaps in transformers (#3458)
  • [jest-snapshot] [BREAKING] Add a serializer for jest.fn to allow a snapshot of a jest mock (#4668)
  • [jest-worker] Initial version of parallel worker abstraction, say hello! (#4497)
  • [jest-jasmine2] Add testLocationInResults flag to add location information per spec to test results (#4782)
  • [jest-environment-jsdom] Update JSOM to 11.4, which includes built-in support for requestAnimationFrame (#4919)
  • [jest-cli] Hide watch usage output when running on non-interactive environments (#4958)
  • [jest-snapshot] Promises support for toThrowErrorMatchingSnapshot (#4946)
  • [jest-cli] Explain which snapshots are obsolete (#5005)

Chore & Maintenance

  • [docs] Add guide of using with puppeteer (#5093)
  • [jest-util] jest-util should not depend on jest-mock (#4992)
  • [*] [BREAKING] Drop support for Node.js version 4 (#4769)
  • [docs] Wrap code comments at 80 characters (#4781)
  • [eslint-plugin-jest] Removed from the Jest core repo, and moved to https://github.com/jest-community/eslint-plugin-jest (#4867)
  • [babel-jest] Explicitly bump istanbul to newer versions (#4616)
  • [expect] Upgrade mocha and rollup for browser testing (#4642)
  • [docs] Add info about coveragePathIgnorePatterns (#4602)
  • [docs] Add Vuejs series of testing with Jest (#4648)
  • [docs] Mention about optional done argument in test function (#4556)
  • [jest-cli] Bump node-notifier version (#4609)
  • [jest-diff] Simplify highlight for leading and trailing spaces (#4553)
  • [jest-get-type] Add support for date (#4621)
  • [jest-matcher-utils] Call chalk.inverse for trailing spaces (#4578)
  • [jest-runtime] Add .advanceTimersByTime; keep .runTimersToTime() as an alias.
  • [docs] Include missing dependency in TestEnvironment sample code
  • [docs] Add clarification for hook execution order
  • [docs] Update expect.anything() sample code (#5007)

jest 21.2.1

  • Fix watchAll not running tests on save (#4550)
  • Add missing escape sequences to ConvertAnsi plugin (#4544)

jest 21.2.0

  • 🃏 Change license from BSD+Patents to MIT.
  • Allow eslint-plugin to recognize more disabled tests (#4533)
  • Add babel-plugin for object spread syntax to babel-preset-jest (#4519)
  • Display outer element and trailing newline consistently in jest-diff (#4520)
  • Do not modify stack trace of JestAssertionError (#4516)
  • Print errors after test structure in verbose mode (#4504)
  • Fix --silent --verbose problem (#4505)
  • Fix: Reset local state of assertions when using hasAssertions (#4498)
  • jest-resolve: Prevent default resolver failure when potential resolution directory does not exist (#4483)

jest 21.1.0

  • (minor) Use ES module exports (#4454)
  • Allow chaining mockClear and mockReset (#4475)
  • Call jest-diff and pretty-format more precisely in toHaveProperty matcher (#4445)
  • Expose restoreAllMocks to object (#4463)
  • Fix function name cleaning when making mock fn (#4464)
  • Fix Map/Set equality checker (#4404)
  • Make FUNCTION_NAME_RESERVED_PATTERN stateless (#4466)

jest 21.0.2

  • Take precedence of NODE_PATH when resolving node_modules directories (#4453)
  • Fix race condition with --coverage and babel-jest identical file contents edge case (#4432)
  • Add extra parameter --runTestsByPath. (#4411)
  • Upgrade all outdated deps (#4425)

jest 21.0.1

  • Remove obsolete error (#4417)

jest 21.0.0

  • 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 use test instead of it 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)

jest 20.0.4

  • 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)

jest 20.0.3

  • Fix reporters 'default' setting. (#3562)
  • Fix to make Jest fail when the coverage threshold not met. (#3554)

jest 20.0.1

  • Add ansi-regex to pretty-format dependencies (#3498)
  • Fix <rootDir> 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)

jest 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 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.

jest 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.

jest 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 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).

jest 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.

jest 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 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.

jest 17.0.3

  • Improved file-watching feature in jest-haste-map.
  • Added .toHaveLength matcher.
  • Improved .toContain matcher.

jest 17.0.2

  • Fixed performance regression in module resolution.

jest 17.0.1

  • Fixed pretty printing of big objects.
  • Fixed resolution of .native.js files in react-native projects.

jest 17.0.0

  • 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.

jest 16.0.2

  • Symbols are now properly mocked when using jest-mock.
  • toHaveBeenCalledWith() works without arguments again.
  • Newlines in snapshots are now normalized across different operating systems.

jest 16.0.1

  • Fix infinite loop.

jest 16.0.0

  • 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 and xtest.
  • 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 or enter 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 and toBeCalledWith 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 to babel-plugin-jest-hoist.
  • Added jest.runTimersToTime which is useful together with fake timers.
  • Improved automated mocks for ES modules compiled with babel.

jest 15.1.1

  • Fixed issues with test paths that include hyphens on Windows.
  • Fixed testEnvironment resolution.
  • Updated watch file name pattern input.

jest 15.1.0

  • 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.

jest 15.0.2

  • Fixed Jest with npm2 when using coverage.

jest 15.0.1

  • 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.

jest 15.0.0

  • See https://jestjs.io/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 prefer jest-environment-{name} instead of {name} only. This prevents a module colision when using jsdom 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.

jest 14.1.0

  • 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.

jest 14.0.2

  • babel-jest bugfix.

jest 14.0.1

  • babel-jest can now be used to compose a transformer.
  • Updated snapshot instructions to run jest -u or npm test -- -u.
  • Fixed config cli option to enable JSON objects as configuration.
  • Updated printing of preset path in the CLI.

jest 14.0.0

  • 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.

jest 13.2.0

  • Snapshot bugfixes.
  • Timer bugfixes.

jest 13.1.0

  • Added test global function as an alias for it.
  • Added coveragePathIgnorePatterns to the config.
  • Fixed printing of "JSX objects" in snapshots.
  • Fixes for --verbose option and top level it 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.

jest 13.0.0

  • Added duration of individual tests in verbose mode.
  • Added a browser config option to properly resolve npm packages with a browser field in package.json if you are writing tests for client side apps
  • Added jest-repl.
  • Split up jest-cli into jest-runtime and jest-config.
  • Added a notification plugin that shows a test run notification using --notify.
  • Refactored TestRunner into SearchSource 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.

jest-cli 12.1.1

  • Windows stability fixes.
  • Mock module resolution fixes.
  • Remove test files from code coverage.

jest-cli 12.1.0

  • Jest is now also published in the jest package on npm.
  • Added testRegex to match for tests outside of specific folders. Deprecated both testDirectoryName and testFileExtensions.
  • 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 https://jestjs.io/docs/en/configuration#coveragethreshold-object.
  • Updated to jsdom 9.0.
  • Updated and improved stack trace reporting.
  • Added module.filename and removed the invalid module.__filename field.
  • Further improved the lastCalledWith and toBeCalledWith 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.

jest-cli 12.0.2

  • Bug fixes when running a single test file and for scoped package names.

jest-cli 12.0.1

  • Added custom equality matchers for Map/Set and iterables.
  • Bug fixes

jest-cli 12.0.0

  • Reimplemented node-haste as jest-haste-map: https://github.com/facebook/jest/pull/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.

jest-cli 11.0.2

  • Fixed jest -o error when Mercurial isn't installed on the system
  • Fixed Jasmine failure message when expected values were mutated after tests.

jest-cli 11.0.1, babel-jest 11.0.1

  • Added support for Mercurial repositories when using jest -o
  • Added mockImplementationOnce API to jest.fn().

jest-cli 11.0.0, babel-jest 11.0.0 (pre-releases 0.9 to 0.10)

  • 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 and babel-jest as packages. babel-jest is now being auto-detected.
  • Added babel-plugin-jest-hoist which hoists jest.unmock, jest.mock and the new jest.enableAutomock and jest.disableAutomock API.
  • Improved babel-jest integration and react-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 of babel-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() and jest.fn(implementation) as convenient shorcuts for jest.genMockFunction() and jest.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 to test 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 and xdescribe.
  • 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.

0.8.2

  • Performance improvements.
  • jest now uses chalk instead of its own colors implementation.

0.8.1

  • --bail now reports with the proper error code.
  • Fixed loading of the setup file when using jasmine2.
  • Updated jsdom to 7.2.0.

0.8.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 in moduleFileExtensions.
  • Updated the list of node core modules that are properly being recognized by the module loader.

0.7.1

  • Correctly map process.on into jsdom environments, fixes a bug introduced in jest 0.7.0.

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 and mocks 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 and mockSetReadOnlyProperty from the global jsdom environment. Use window.navigator.onLine = true; in your test setup and Object.defineProperty instead.

0.6.1

  • 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.

0.6.0

  • 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 like expect([]).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).

0.5.6

  • Cache test run performance and run slowest tests first to maximize worker utilization
  • Update to jsdom 6.5.0

0.5.5

  • Improve failure stack traces.
  • Fix syntax error reporting.
  • Add --watch option (#472).

0.5.2

  • 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).

0.5.1

  • 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.

0.5.0

  • 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.

<=0.4.0

  • See commit history for changes in previous versions of jest.