jest-cli v24.0.0 Release Notes

  • πŸ”‹ 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)
    • 0️⃣ [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)
    • [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)