From 717d5d8558420de898db20dc4c63e57193163d73 Mon Sep 17 00:00:00 2001 From: Wonsuk Choi Date: Sat, 7 Feb 2026 15:45:35 +0900 Subject: [PATCH] test(query-core/queryObserver): add test for 'getOptimisticResult' updating 'currentResult' with changed data --- .../src/__tests__/queryObserver.test.tsx | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/packages/query-core/src/__tests__/queryObserver.test.tsx b/packages/query-core/src/__tests__/queryObserver.test.tsx index 57f8040864..3dcb208bfa 100644 --- a/packages/query-core/src/__tests__/queryObserver.test.tsx +++ b/packages/query-core/src/__tests__/queryObserver.test.tsx @@ -1510,6 +1510,32 @@ describe('queryObserver', () => { expect(result.isEnabled).toBe(true) }) + test('should update currentResult when getOptimisticResult is called with changed data', () => { + const key = queryKey() + + const observer = new QueryObserver(queryClient, { + queryKey: key, + queryFn: () => 'data', + }) + + const defaultedOptions = queryClient.defaultQueryOptions({ + queryKey: key, + queryFn: () => 'data', + }) + + // First render: no data yet + const initialResult = observer.getOptimisticResult(defaultedOptions) + expect(initialResult.data).toBeUndefined() + + // Another component sets data (e.g., dependent query resolved) + queryClient.setQueryData(key, 'updated') + + // Re-render: getOptimisticResult should pick up the new data and update currentResult + const updatedResult = observer.getOptimisticResult(defaultedOptions) + expect(updatedResult.data).toBe('updated') + expect(observer.getCurrentResult().data).toBe('updated') + }) + describe('StrictMode behavior', () => { it('should deduplicate calls to queryFn', async () => { const key = queryKey()