react-native-macos/scripts/__tests__
Rob Hogan 86968c1104 Use modern timers in monorepo Jest tests (#38955)
Summary:
Pull Request resolved: https://github.com/facebook/react-native/pull/38955

Jest introduced "modern" timers based on `sinon/fake-timers` in Jest 26 ([release announcement](https://jestjs.io/blog/2020/05/05/jest-26#new-fake-timers)), and they became the default in Jest 27, in May 2021.

Modern timers have more capabilities - they were introduced with support for `queueMicrotask`, mocking `Date`, etc., and they've continued to receive more attention from the Jest team since - they're now much more comprehensive and more configurable than legacy timers.

Importantly, because they're not based on Jest mocks, they're not affected in surprising ways by eg `jest.resetAllMocks()` (a particularly confusing side-effect when fake timers are enabled globally, as in our setup).

This migrates RN's own tests and config to modern fake timers, or real timers where that's more appropriate.

NOTE: In cases where non-trivial changes to the tests are required, four test files are individually opted-in to `legacyFakeTimers` with a `TODO(legacy-fake-timers)`. I'll open these up for community contributions to fix.

Changelog: [Internal]

Reviewed By: motiz88

Differential Revision: D48189907

fbshipit-source-id: 2e7ce74cc60e80679d81d7c16d599ad1bbe2c921
2023-08-11 11:01:06 -07:00
..
npm-utils-test.js Re-sync with internal repository (#37831) 2023-06-12 17:34:52 -04:00
publish-npm-test.js Use modern timers in monorepo Jest tests (#38955) 2023-08-11 11:01:06 -07:00
scm-utils-test.js Do not depend on an ENV variable when publishing and setting the RN version (#34746) 2022-09-22 07:34:50 -07:00
set-rn-version-test.js Delete validation in set-rn-version (#37814) 2023-06-14 07:44:51 -07:00
version-utils-test.js Update nightly versioning of react-native (#37028) 2023-05-05 14:48:29 -07:00