De v28 a v29
Atualizando Jest da v28 para a v29? Esse guia visa ajudar a refatorar sua configuração e testes.
See changelog for the full list of changes.
Atualizar a partir de uma versão mais antiga? You can see the upgrade guide from v27 to v28 here.
Compatibilidade
As versões do Node suportadas são 14.15, 16.10, 18.0 e superior.
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.
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
Os exemplos de TypeScript desta página só funcionarão como documentados se você importar explicitamente APIs do 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});