Aller au contenu principal
Version : Suivant

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.

info

See changelog for the full list of changes.

remarque

Mettre à jour depuis une ancienne version ? Vous pouvez voir le guide de mise à jour de la v27 à la v28 ici.

Compatibilité

Les versions de Node supportées sont 14.15, 16.10, 18.0 et supérieures.

Format du snapshot

Comme annoncé dans l'article du blog de Jest 28, Jest 29 a changé le formatage par défaut des snapshots en {escapeString: false, printBasicPrototype: false}.

Si vous voulez conserver l'ancien comportement, vous pouvez définir la propriété snapshotFormat à :

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

Mise à jour de JSDOM

jest-environment-jsdom has upgraded jsdom from v19 to v20.

info

If you use jest-environment-jsdom, the minimum TypeScript version is set to 4.5.

Notamment, jsdom@20 inclut le support de crypto.getRandomValues(), ce qui signifie que des paquets comme uuid et nanoid, qui ne fonctionne pas correctement dans Jest@28, peuvent fonctionner sans polyfills supplémentaires.

pretty-format

Le plugin ConvertAnsi est supprimé du paquet pretty-format en faveur de 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

info

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';

Veuillez consulter le guide Premiers pas pour plus de détails sur la façon de configurer Jest avec 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});