З v28 до v29
Оновлюєте Jest з v28 до v29? Ця інструкція спрямована на те, аби допомогти змінити вашу конфігурацію та тести.
See changelog for the full list of changes.
Оновлюєтесь зі старішої версії? You can see the upgrade guide from v27 to v28 here.
Сумісність
Підтримуються версії Node 14.15, 16.10, 18.0 та вище.
Формати знімків файлової системи
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
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
Приклади TypeScript з цієї сторінки будуть працювати, як задокументовано, тільки якщо ви явно імпортуєте Jest API:
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});