File tree Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Expand file tree Collapse file tree 1 file changed +34
-0
lines changed Original file line number Diff line number Diff line change @@ -12,6 +12,40 @@ import React, {
1212import renderPrepass from '..'
1313
1414describe ( 'renderPrepass' , ( ) => {
15+ describe ( 'event loop yielding' , ( ) => {
16+ it ( 'yields to the event loop when work is taking too long' , ( ) => {
17+ const Inner = jest . fn ( ( ) => null )
18+
19+ const Outer = ( ) => {
20+ const start = Date . now ( )
21+ while ( Date . now ( ) - start < 11 ) { }
22+ return < Inner />
23+ }
24+
25+ const render$ = renderPrepass ( < Outer /> )
26+
27+ expect ( Inner ) . toHaveBeenCalledTimes ( 0 )
28+
29+ setImmediate ( ( ) => {
30+ setImmediate ( ( ) => {
31+ expect ( Inner ) . toHaveBeenCalledTimes ( 1 )
32+ } )
33+ } )
34+
35+ return render$ . then ( ( ) => {
36+ expect ( Inner ) . toHaveBeenCalledTimes ( 1 )
37+ } )
38+ } )
39+
40+ it ( 'does not yields when work is below the threshold' , ( ) => {
41+ const Inner = jest . fn ( ( ) => null )
42+ const Outer = ( ) => < Inner />
43+ const render$ = renderPrepass ( < Outer /> )
44+
45+ expect ( Inner ) . toHaveBeenCalledTimes ( 1 )
46+ } )
47+ } )
48+
1549 describe ( 'function components' , ( ) => {
1650 it ( 'supports suspending subtrees' , ( ) => {
1751 const value = { }
You can’t perform that action at this time.
0 commit comments