@samitouri / QOS-React-2 / commits / 90f54d77f3

Event API: add follow up event unwind test (#15612)

Dominic Gannaway committed May 10, 2019 at 13:36 UTC 90f54d77f3bcc93cd9b298b5de6385bd6c16c4dc
1 file changed +37
packages/react-reconciler/src/__tests__/ReactFiberEvents-test-internal.js
+37
@@ -788,6 +788,43 @@ describe('ReactFiberEvents', () => {
788 expect(componentStackMessage.includes('Test')).toBe(true);
789 expect(componentStackMessage.includes('Wrapper')).toBe(true);
790 });
791 +
792 + it('should handle unwinding event component fibers in concurrent mode', () => {
793 + let resolveThenable;
794 +
795 + const thenable = {
796 + then(resolve) {
797 + resolveThenable = resolve;
798 + },
799 + };
800 +
801 + function Async() {
802 + Scheduler.yieldValue('Suspend!');
803 + throw thenable;
804 + }
805 +
806 + function Text(props) {
807 + Scheduler.yieldValue(props.text);
808 + return props.text;
809 + }
810 +
811 + ReactTestRenderer.create(
812 + <React.Suspense fallback={<Text text="Loading..." />}>
813 + <EventComponent>
814 + <div>
815 + <Async />
816 + <Text text="Sibling" />
817 + </div>
818 + </EventComponent>
819 + </React.Suspense>,
820 + {
821 + unstable_isConcurrent: true,
822 + },
823 + );
824 +
825 + expect(Scheduler).toFlushAndYieldThrough(['Suspend!']);
826 + resolveThenable();
827 + });
828 });
829
830 describe('ReactDOM', () => {