Skip to content

Commit a7e6603

Browse files
committed
test
1 parent 0a72df8 commit a7e6603

1 file changed

Lines changed: 48 additions & 0 deletions

File tree

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

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import {
1111
QueryClientProvider,
1212
QueryErrorResetBoundary,
1313
keepPreviousData,
14+
useInfiniteQuery,
1415
useQuery,
1516
} from '..'
1617
import { QueryCache } from '../index'
@@ -1383,4 +1384,51 @@ describe('useQuery().promise', () => {
13831384
.observers.length,
13841385
).toBe(2)
13851386
})
1387+
1388+
it('should implicitly observe data when promise is used', async () => {
1389+
const key = queryKey()
1390+
1391+
const renderStream = createRenderStream({ snapshotDOM: true })
1392+
1393+
function Page() {
1394+
useTrackRenders()
1395+
const query = useInfiniteQuery({
1396+
queryKey: key,
1397+
queryFn: async () => {
1398+
await vi.advanceTimersByTimeAsync(1)
1399+
return { nextCursor: 1, data: 'test' }
1400+
},
1401+
initialPageParam: 0,
1402+
getNextPageParam: (lastPage) => lastPage.nextCursor,
1403+
})
1404+
1405+
React.use(query.promise)
1406+
1407+
const hasNextPage = query.hasNextPage
1408+
1409+
return (
1410+
<div>
1411+
<div>hasNextPage: {String(hasNextPage)}</div>
1412+
</div>
1413+
)
1414+
}
1415+
1416+
await renderStream.render(
1417+
<QueryClientProvider client={queryClient}>
1418+
<React.Suspense fallback="loading..">
1419+
<Page />
1420+
</React.Suspense>
1421+
</QueryClientProvider>,
1422+
)
1423+
1424+
{
1425+
const { withinDOM } = await renderStream.takeRender()
1426+
expect(withinDOM().getByText('loading..')).toBeInTheDocument()
1427+
}
1428+
1429+
{
1430+
const { withinDOM } = await renderStream.takeRender()
1431+
expect(withinDOM().getByText('hasNextPage: true')).toBeInTheDocument()
1432+
}
1433+
})
13861434
})

0 commit comments

Comments
 (0)