From a2f75bf164a243f8916492e9b2514c5a8b616f6b Mon Sep 17 00:00:00 2001 From: Dominik Dorfmeister Date: Fri, 29 Dec 2023 22:29:49 +0100 Subject: [PATCH] chore: test for 6486 --- .../src/__tests__/suspense.test.tsx | 57 +++++++++++++++++++ 1 file changed, 57 insertions(+) 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) + }) })