diff --git a/packages/react-dom/src/__tests__/ReactDOMSingletonComponents-test.js b/packages/react-dom/src/__tests__/ReactDOMSingletonComponents-test.js index 4155c854856..1b3ae5824c6 100644 --- a/packages/react-dom/src/__tests__/ReactDOMSingletonComponents-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMSingletonComponents-test.js @@ -491,6 +491,54 @@ describe('ReactDOM HostSingleton', () => { expect(onScroll).toHaveBeenCalledTimes(2); }); + // @gate __DEV__ + it('does not release or reacquire singletons when double invoking effects during hydration', async () => { + const effectLog = []; + const html = 'managed content'; + + function Effect() { + React.useLayoutEffect(() => { + effectLog.push('mount'); + return () => { + effectLog.push('unmount'); + }; + }, []); + return ; + } + + await actIntoEmptyDocument(() => { + const {pipe} = ReactDOMFizzServer.renderToPipeableStream( + +
+ + +