From 90f54d77f3bcc93cd9b298b5de6385bd6c16c4dc Mon Sep 17 00:00:00 2001 From: Dominic Gannaway Date: Fri, 10 May 2019 13:36:54 +0100 Subject: [PATCH] Event API: add follow up event unwind test (#15612) --- .../ReactFiberEvents-test-internal.js | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/packages/react-reconciler/src/__tests__/ReactFiberEvents-test-internal.js b/packages/react-reconciler/src/__tests__/ReactFiberEvents-test-internal.js index 5516f78373..fc89a2e4c9 100644 --- a/packages/react-reconciler/src/__tests__/ReactFiberEvents-test-internal.js +++ b/packages/react-reconciler/src/__tests__/ReactFiberEvents-test-internal.js @@ -788,6 +788,43 @@ describe('ReactFiberEvents', () => { expect(componentStackMessage.includes('Test')).toBe(true); expect(componentStackMessage.includes('Wrapper')).toBe(true); }); + + it('should handle unwinding event component fibers in concurrent mode', () => { + let resolveThenable; + + const thenable = { + then(resolve) { + resolveThenable = resolve; + }, + }; + + function Async() { + Scheduler.yieldValue('Suspend!'); + throw thenable; + } + + function Text(props) { + Scheduler.yieldValue(props.text); + return props.text; + } + + ReactTestRenderer.create( + }> + +
+ + +
+
+
, + { + unstable_isConcurrent: true, + }, + ); + + expect(Scheduler).toFlushAndYieldThrough(['Suspend!']); + resolveThenable(); + }); }); describe('ReactDOM', () => {