|
10 | 10 | 'use strict'; |
11 | 11 |
|
12 | 12 | const React = require('react'); |
13 | | -const Fragment = React.Fragment; |
14 | 13 | let ReactFeatureFlags = require('shared/ReactFeatureFlags'); |
15 | 14 |
|
16 | 15 | let ReactDOM; |
@@ -602,84 +601,4 @@ describe('ReactDOMFiberAsync', () => { |
602 | 601 | expect(root.createBatch).toBe(undefined); |
603 | 602 | }); |
604 | 603 | }); |
605 | | - |
606 | | - describe('Disable yielding', () => { |
607 | | - beforeEach(() => { |
608 | | - jest.resetModules(); |
609 | | - ReactFeatureFlags = require('shared/ReactFeatureFlags'); |
610 | | - ReactFeatureFlags.disableYielding = true; |
611 | | - ReactFeatureFlags.debugRenderPhaseSideEffectsForStrictMode = false; |
612 | | - ReactDOM = require('react-dom'); |
613 | | - Scheduler = require('scheduler'); |
614 | | - }); |
615 | | - |
616 | | - it('wont yield during a render if yielding is disabled', () => { |
617 | | - class A extends React.Component { |
618 | | - render() { |
619 | | - Scheduler.yieldValue('A'); |
620 | | - return <div>{this.props.children}</div>; |
621 | | - } |
622 | | - } |
623 | | - |
624 | | - class B extends React.Component { |
625 | | - render() { |
626 | | - Scheduler.yieldValue('B'); |
627 | | - return <div>{this.props.children}</div>; |
628 | | - } |
629 | | - } |
630 | | - |
631 | | - class C extends React.Component { |
632 | | - render() { |
633 | | - Scheduler.yieldValue('C'); |
634 | | - return <div>{this.props.children}</div>; |
635 | | - } |
636 | | - } |
637 | | - |
638 | | - let root = ReactDOM.unstable_createRoot(container); |
639 | | - |
640 | | - root.render( |
641 | | - <Fragment> |
642 | | - <A /> |
643 | | - <B /> |
644 | | - <C /> |
645 | | - </Fragment>, |
646 | | - ); |
647 | | - |
648 | | - expect(Scheduler).toHaveYielded([]); |
649 | | - |
650 | | - Scheduler.unstable_flushNumberOfYields(2); |
651 | | - // Even though we just flushed two yields, we should have rendered |
652 | | - // everything without yielding when the flag is on. |
653 | | - expect(Scheduler).toHaveYielded(['A', 'B', 'C']); |
654 | | - }); |
655 | | - |
656 | | - it('wont suspend during a render if yielding is disabled', () => { |
657 | | - let p = new Promise(resolve => {}); |
658 | | - |
659 | | - function Suspend() { |
660 | | - throw p; |
661 | | - } |
662 | | - |
663 | | - let root = ReactDOM.unstable_createRoot(container); |
664 | | - root.render( |
665 | | - <React.Suspense fallback={'Loading'}>Initial</React.Suspense>, |
666 | | - ); |
667 | | - |
668 | | - Scheduler.flushAll(); |
669 | | - expect(container.textContent).toBe('Initial'); |
670 | | - |
671 | | - root.render( |
672 | | - <React.Suspense fallback={'Loading'}> |
673 | | - <Suspend /> |
674 | | - </React.Suspense>, |
675 | | - ); |
676 | | - |
677 | | - expect(Scheduler).toHaveYielded([]); |
678 | | - |
679 | | - Scheduler.flushAll(); |
680 | | - |
681 | | - // This should have flushed to the DOM even though we haven't ran the timers. |
682 | | - expect(container.textContent).toBe('Loading'); |
683 | | - }); |
684 | | - }); |
685 | 604 | }); |
0 commit comments