diff --git a/packages/react-query/src/__tests__/suspense.test.tsx b/packages/react-query/src/__tests__/suspense.test.tsx index 5bdbb9c0b5..dc689913ee 100644 --- a/packages/react-query/src/__tests__/suspense.test.tsx +++ b/packages/react-query/src/__tests__/suspense.test.tsx @@ -1033,4 +1033,61 @@ describe('useSuspenseQueries', () => { await waitFor(() => rendered.getByText('data1')) }) + + it('should not request old data inside transitions (issue #6486)', async () => { + const key = queryKey() + let queryFnCount = 0 + + function App() { + const [count, setCount] = React.useState(0) + + return ( +
+ + + + +
+ ) + } + + function Page({ count }: { count: number }) { + const { data } = useSuspenseQuery({ + queryKey: [key, count], + queryFn: async () => { + queryFnCount++ + await sleep(10) + return 'data' + count + }, + }) + + return ( +
+
{String(data)}
+
+ ) + } + + const rendered = renderWithClient( + queryClient, + + , + ) + + await waitFor(() => rendered.getByText('Loading...')) + + await waitFor(() => rendered.getByText('data0')) + + fireEvent.click(rendered.getByText('inc')) + + await waitFor(() => rendered.getByText('data1')) + + await sleep(20) + + expect(queryFnCount).toBe(2) + }) })