From fb324faf8a3da08212bcc5ea9e3a084dbfa80dad Mon Sep 17 00:00:00 2001 From: Tianyu Yao Date: Tue, 10 Jan 2023 16:53:16 -0800 Subject: [PATCH] Test case for stack overflow in ReactFizzServer (#25971) SSR currently stack overflows when the component tree is extremely large --- .../ReactDOMFizzShellHydration-test.js | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/packages/react-dom/src/__tests__/ReactDOMFizzShellHydration-test.js b/packages/react-dom/src/__tests__/ReactDOMFizzShellHydration-test.js index 98f0fba9b8..d0be8769ab 100644 --- a/packages/react-dom/src/__tests__/ReactDOMFizzShellHydration-test.js +++ b/packages/react-dom/src/__tests__/ReactDOMFizzShellHydration-test.js @@ -283,4 +283,26 @@ describe('ReactDOMFizzShellHydration', () => { ]); expect(container.textContent).toBe('New screen'); }); + + test('TODO: A large component stack causes SSR to stack overflow', async () => { + spyOnDevAndProd(console, 'error'); + + function NestedComponent({depth}: {depth: number}) { + if (depth <= 0) { + return ; + } + return ; + } + + // Server render + await serverAct(async () => { + ReactDOMFizzServer.renderToPipeableStream( + , + ); + }); + expect(console.error).toHaveBeenCalledTimes(1); + expect(console.error.calls.argsFor(0)[0].toString()).toBe( + 'RangeError: Maximum call stack size exceeded', + ); + }); });