Skip to content

Releases: SimenB/jest

18.1.0

16 Aug 08:31
23b9860
Compare
Choose a tag to compare
  • Fixed console.log and fake timer behavior in node 7.3.
  • Updated istanbul-api.
  • Updated jest-diff equality error message.
  • Disabled arrow keys when entering a pattern in watch mode to prevent broken behavior. Will be improved in a future release.
  • Moved asymmetric matchers and equality functionality from Jasmine into jest-matchers.
  • Removed jasmine and jest-snapshot dependency from jest-matchers.
  • Removed unused global context variable.
  • Show a better error message if the config is invalid JSON.
  • Highlight trailing whitespace in assertion diffs and snapshots.
  • Jest now uses micromatch instead of minimatch.
  • Added -h as alias for --help.

24.8.0

16 Aug 08:32
Compare
Choose a tag to compare

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

16 Aug 08:32
Compare
Choose a tag to compare

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

16 Aug 08:32
Compare
Choose a tag to compare

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

16 Aug 08:32
Compare
Choose a tag to compare

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 inceremental 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

16 Aug 08:32
Compare
Choose a tag to compare

Features

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

Chore & Maintenance

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

24.4.0

16 Aug 08:32
Compare
Choose a tag to compare

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

16 Aug 08:32
Compare
Choose a tag to compare

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 ([jestjs#7899](jestjs#789...
Read more

24.1.0

16 Aug 08:32
Compare
Choose a tag to compare

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

16 Aug 08:32
Compare
Choose a tag to compare

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([jestjs#7209]jestjs#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-m...
Read more