diff --git a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js index 0ed4014dfb29e..7115ed43d0241 100644 --- a/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js +++ b/packages/react-reconciler/src/__tests__/ReactHooks-test.internal.js @@ -1366,4 +1366,35 @@ describe('ReactHooks', () => { ), ).toThrow('Hello'); }); + + // Regression test for https://github.com/facebook/react/issues/14790 + fit('does not fire a false positive warning when suspending', async () => { + const {Suspense, useState, useRef} = React; + + let wasSuspended = false; + function trySuspend() { + if (!wasSuspended) { + throw new Promise(resolve => { + wasSuspended = true; + resolve(); + }); + } + } + + function Child() { + React.useState(); + trySuspend(); + return 'hello'; + } + + const Wrapper = React.memo(Child); + const root = ReactTestRenderer.create( + + + , + ); + expect(root).toMatchRenderedOutput('loading'); + await Promise.resolve(); + expect(root).toMatchRenderedOutput('hello'); + }); });