Upgrade Jest 29 and higher
Jest 27 was released with numerous bug fixes and improvements. The most significant are:
1. New test default test runner called `jest-circus` which replaced old Jasmine 2.0 code and made Jest faster.
2. Native ESM support.
3. `transform` is asynchronous now and supports transpilation through esbuild, vite.
4. Default test environment was changed from `jsdom` to `node`.
5. The modern fake timers implementation is the default now.
After migration to Jest 27 we need to migrate to Jest 28 as this version is considered as LTS.
**References:**
- https://jestjs.io/blog/2021/05/25/jest-27
- https://github.com/facebook/jest/blob/main/CHANGELOG.md#2700
epic