De la v28 à la v29
Mise à jour de la v28 à la v29 de Jest ? Ce guide a pour but de vous aider à refactoriser votre configuration et vos tests.
See changelog for the full list of changes.
Mettre à jour depuis une ancienne version ? You can see the upgrade guide from v27 to v28 here.
Compatibilité
Les versions de Node supportées sont 14.15, 16.10, 18.0 et supérieures.
Format du snapshot
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
+ }
Mise à jour de JSDOM
jest-environment-jsdom has upgraded jsdom from v19 to v20.
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 uuid and nanoid, which doesn't work properly in Jest@28, can work without extra polyfills.
pretty-format
ConvertAnsi plugin is removed from pretty-format package in favour of jest-serializer-ansi-escapes.
jest-mock
Exports of Mocked* utility types from jest-mock package have changed. MaybeMockedDeep and MaybeMocked now are exported as Mocked and MockedShallow respectively; only deep mocked variants of MockedClass, MockedFunction and MockedObject are exposed.
TypeScript
Les exemples TypeScript de cette page ne fonctionneront comme documenté que si vous importez explicitement les API Jest :
import {expect, jest, test} from '@jest/globals';
Consult the Getting Started guide for details on how to setup Jest with TypeScript.
jest.mocked()
The jest.mocked() helper method now wraps types of deep members of passed object by default. If you have used the method with true as the second argument, remove it to avoid type errors:
- const mockedObject = jest.mocked(someObject, true);
+ const mockedObject = jest.mocked(someObject);
To have the old shallow mocked behavior, pass {shallow: true} as the second argument:
- const mockedObject = jest.mocked(someObject);
+ const mockedObject = jest.mocked(someObject, {shallow: true});