File tree Expand file tree Collapse file tree
packages/react-query/src/__tests__ Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ import {
1111 QueryClientProvider ,
1212 QueryErrorResetBoundary ,
1313 keepPreviousData ,
14+ useInfiniteQuery ,
1415 useQuery ,
1516} from '..'
1617import { 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} )
You can’t perform that action at this time.
0 commit comments