jest-cli v23.0.0 Release Notes

  • 🔋 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)
    • 0️⃣ [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)