Skip to content

Commit a3532fb

Browse files
committed
Add test case for infinite render loop
1 parent a66fe44 commit a3532fb

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

packages/react-query/src/__tests__/useQuery.test.tsx

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6211,4 +6211,25 @@ describe('useQuery', () => {
62116211
await waitFor(() => rendered.getByText('Rendered Id: 2'))
62126212
expect(spy).toHaveBeenCalledTimes(1)
62136213
})
6214+
it('should not cause an infinite render loop when using unstable callback ref', async () => {
6215+
const key = queryKey()
6216+
6217+
function Test() {
6218+
const [_, setRef] = React.useState<HTMLDivElement | null>()
6219+
6220+
const { data } = useQuery({
6221+
queryKey: [key],
6222+
queryFn: async () => {
6223+
await sleep(5)
6224+
return 'Works'
6225+
},
6226+
})
6227+
6228+
return <div ref={(value) => setRef(value)}>{data}</div>
6229+
}
6230+
6231+
const rendered = renderWithClient(queryClient, <Test />)
6232+
6233+
await waitFor(() => rendered.getByText('Works'))
6234+
})
62146235
})

0 commit comments

Comments
 (0)