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