Skip to content

Latest commit

 

History

History
49 lines (29 loc) · 1.61 KB

UpgradingToJest29.md

File metadata and controls

49 lines (29 loc) · 1.61 KB
id title
upgrading-to-jest29
From v28 to v29

Upgrading Jest from v28 to v29? This guide aims to help refactoring your configuration and tests.

:::info

See changelog for the full list of changes.

:::

:::note

Upgrading from an older version? You can see the upgrade guide from v27 to v28 here.

:::

Compatibility

The supported Node versions are 14.15, 16.10, 18.0 and above.

Snapshot format

As announced in the Jest 28 blog post, Jest 29 has changed the default snapshot formatting to {escapeString: false, printBasicPrototype: false}.

If you want to keep the old behavior, you can set the snapshotFormat property to:

+ snapshotFormat: {
+   escapeString: true,
+   printBasicPrototype: true
+ }

JSDOM upgrade

jest-environment-jsdom has upgraded jsdom from v19 to v20. Note that if you use jest-environment-jsdom, the minimum TypeScript version is set to 4.5.

Notably, jsdom@20 includes support for crypto.getRandomValues(), which means packages like jsdom and nanoid, which doesn't work properly in Jest@28, can work without extra polyfills.

jest-mock

Exports of Mocked* utility types changed. MaybeMockedDeep and MaybeMocked now are exported as Mocked and MockedShallow respectively; only deep mocked variants of MockedClass, MockedFunction and MockedObject are exposed.

pretty-format

ConvertAnsi plugin is removed in favour of jest-serializer-ansi-escapes.