mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
86968c1104
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