Jest upgrade to v27 was required to resolve word-wrap ReDoS vulnerability, multiple MFEs are already on v29 and some on v28, we decided to update jest to latest version which is v29, across all MFEs. Following are the details of breaking changes between each version

Jest v27 Upgrade (Complete changelog)

Introduced a few more small breaking changes to help you avoid mistakes by disallowing some things that can easily happen unintentionally:

and we made some TypeScript types stricter.

Modules used in the following configuration options are now transformed like the rest of your code, which may be breaking if you relied on them being loaded as-is:

Jest v28 Upgrade (Complete changelog)

The supported Node versions are 12.13, 14.15, 16.10 and above.

Configuration Options:

Fake Timers:

Fake timers were refactored to allow passing options to the underlying @sinonjs/fake-timers

Test Environment:

Test Runner: When using Jasmine test runner, jest-jasmine2 package now must be installed separately.

Transformer: process() and processAsync() methods of a custom transformer module cannot return a string anymore. They must always return an object.

Typescript

Jest v29 Upgrade (Complete changelog)

The supported Node versions are 14.15, 16.10, 18.0 and above. v29 introduces following breaking changes