From 4604258f3f5fddd7240589e0191e5d3e16193f6a Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sun, 31 Aug 2025 21:29:53 +0900 Subject: [PATCH] test(react-query/HydrationBoundary): add tests for 'non-object' state and missing 'queries' property handling --- .../src/__tests__/HydrationBoundary.test.tsx | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx index 796dfc958d..a703d0a8a7 100644 --- a/packages/react-query/src/__tests__/HydrationBoundary.test.tsx +++ b/packages/react-query/src/__tests__/HydrationBoundary.test.tsx @@ -362,6 +362,54 @@ describe('React hydration', () => { queryClient.clear() }) + test('should not hydrate queries if state is not an object', async () => { + const queryClient = new QueryClient() + + const hydrateSpy = vi.spyOn(coreModule, 'hydrate') + + function Page() { + return null + } + + render( + + + + + , + ) + + await vi.advanceTimersByTimeAsync(0) + expect(hydrateSpy).toHaveBeenCalledTimes(0) + + hydrateSpy.mockRestore() + queryClient.clear() + }) + + test('should handle state without queries property gracefully', async () => { + const queryClient = new QueryClient() + + const hydrateSpy = vi.spyOn(coreModule, 'hydrate') + + function Page() { + return null + } + + render( + + + + + , + ) + + await vi.advanceTimersByTimeAsync(0) + expect(hydrateSpy).toHaveBeenCalledTimes(0) + + hydrateSpy.mockRestore() + queryClient.clear() + }) + // https://github.com/TanStack/query/issues/8677 test('should not infinite loop when hydrating promises that resolve to errors', async () => { const originalHydrate = coreModule.hydrate