Skip to main content
Versão: Próximo

De v28 a v29

Atualizando Jest da v28 para a v29? Esse guia visa ajudar a refatorar sua configuração e testes.

informação

Veja changelog para ver a lista completa de alterações.

note

Atualizar a partir de uma versão mais antiga? Você pode ver o guia de atualização da v27 a v28 aqui.

Compatibilidade

As versões do Node suportadas são 14.15, 16.10, 18.0 e superior.

Snapshot format

Como anunciado no Jest 28 blog post, Jest 29 alterou a formatação padrão de snapshot para {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 atualizou a jsdom de v19 para v20.

informação

Se você usar jest-environment-jsdom, a versão mínima do TypeScript é definida como 4.5.

Notavelmente, jsdom@20 inclui suporte para cripto.getRandomValues()o que significa pacotes como uid e nanoid, que não funciona corretamente em Jest@28, pode funcionar sem polyfills extras.

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 e MaybeMockked agora são exportados como Mockked e MockedShallow respectivamente; apenas variantes simuladas profundas de MockedClass, MockedFunction e MockedObject são expostas.

TypeScript

informação

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

Consulte o guia Iniciando para obter detalhes sobre como configurar Jest com 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});