This website requires JavaScript.
Explore
Help
Sign In
maxjhandsome
/
react
Watch
0
Star
0
Fork
You've already forked react
0
Code
Issues
Pull Requests
Packages
Projects
Releases
Wiki
Activity
06fff18d2a
react
/
scripts
/
jest
/
setupTests.build.js
4 lines
92 B
JavaScript
Raw
Normal View
History
Unescape
Escape
Add new mock build of Scheduler with flush, yield API (#14964) * Add new mock build of Scheduler with flush, yield API Test environments need a way to take control of the Scheduler queue and incrementally flush work. Our current tests accomplish this either using dynamic injection, or by using Jest's fake timers feature. Both of these options are fragile and rely too much on implementation details. In this new approach, we have a separate build of Scheduler that is specifically designed for test environments. We mock the default implementation like we would any other module; in our case, via Jest. This special build has methods like `flushAll` and `yieldValue` that control when work is flushed. These methods are based on equivalent methods we've been using to write incremental React tests. Eventually we may want to migrate the React tests to interact with the mock Scheduler directly, instead of going through the host config like we currently do. For now, I'm using our custom static injection infrastructure to create the two builds of Scheduler — a default build for DOM (which falls back to a naive timer based implementation), and the new mock build. I did it this way because it allows me to share most of the implementation, which isn't specific to a host environment — e.g. everything related to the priority queue. It may be better to duplicate the shared code instead, especially considering that future environments (like React Native) may have entirely forked implementations. I'd prefer to wait until the implementation stabilizes before worrying about that, but I'm open to changing this now if we decide it's important enough. * Mock Scheduler in bundle tests, too * Remove special case by making regex more restrictive
2019-02-27 12:51:17 +08:00
'use strict'
;
Update jest to v26 (#21574) * Install jest 26 * jsdom env now uses 16 by default * require.requireActual -> jest.requireActual * deduplicate added deps
2021-05-27 23:33:57 +08:00
jest
.
mock
(
'scheduler'
,
(
)
=>
jest
.
requireActual
(
'scheduler/unstable_mock'
)
)
;