Aller au contenu principal
Version : 29.3

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

Consultez le changelog pour la liste complète des modifications.

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 a mis à jour jsdom de la v19 à la v20. Notez quesi vous utilisez jest-environment-jsdom, la version minimale de TypeScript est définie à 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';

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});