1
1
import * as React from 'react'
2
2
import { renderToString } from 'react-dom/server'
3
3
import { afterEach , beforeEach , describe , expect , it , vi } from 'vitest'
4
- import { queryKey } from '@tanstack/query-test-utils'
4
+ import { queryKey , sleep } from '@tanstack/query-test-utils'
5
5
import {
6
6
QueryCache ,
7
7
QueryClient ,
@@ -56,11 +56,18 @@ describe('Server Side Rendering', () => {
56
56
57
57
it ( 'should add prefetched data to cache' , async ( ) => {
58
58
const key = queryKey ( )
59
- const fetchFn = ( ) => Promise . resolve ( 'data' )
60
- const data = await queryClient . fetchQuery ( {
59
+
60
+ const promise = queryClient . fetchQuery ( {
61
61
queryKey : key ,
62
- queryFn : fetchFn ,
62
+ queryFn : async ( ) => {
63
+ await sleep ( 10 )
64
+ return 'data'
65
+ } ,
63
66
} )
67
+ await vi . advanceTimersByTimeAsync ( 10 )
68
+
69
+ const data = await promise
70
+
64
71
expect ( data ) . toBe ( 'data' )
65
72
expect ( queryCache . find ( { queryKey : key } ) ?. state . data ) . toBe ( 'data' )
66
73
queryCache . clear ( )
@@ -69,7 +76,7 @@ describe('Server Side Rendering', () => {
69
76
it ( 'should return existing data from the cache' , async ( ) => {
70
77
const key = queryKey ( )
71
78
const queryFn = vi . fn ( async ( ) => {
72
- await vi . advanceTimersByTimeAsync ( 10 )
79
+ await sleep ( 10 )
73
80
return 'data'
74
81
} )
75
82
@@ -85,7 +92,8 @@ describe('Server Side Rendering', () => {
85
92
)
86
93
}
87
94
88
- await queryClient . prefetchQuery ( { queryKey : key , queryFn } )
95
+ queryClient . prefetchQuery ( { queryKey : key , queryFn } )
96
+ await vi . advanceTimersByTimeAsync ( 10 )
89
97
90
98
const markup = renderToString (
91
99
< QueryClientProvider client = { queryClient } >
@@ -132,7 +140,7 @@ describe('Server Side Rendering', () => {
132
140
it ( 'useInfiniteQuery should return the correct state' , async ( ) => {
133
141
const key = queryKey ( )
134
142
const queryFn = vi . fn ( async ( ) => {
135
- await vi . advanceTimersByTimeAsync ( 5 )
143
+ await sleep ( 5 )
136
144
return 'page 1'
137
145
} )
138
146
@@ -148,11 +156,12 @@ describe('Server Side Rendering', () => {
148
156
)
149
157
}
150
158
151
- await queryClient . prefetchInfiniteQuery ( {
159
+ queryClient . prefetchInfiniteQuery ( {
152
160
queryKey : key ,
153
161
queryFn,
154
162
initialPageParam : 0 ,
155
163
} )
164
+ await vi . advanceTimersByTimeAsync ( 5 )
156
165
157
166
const markup = renderToString (
158
167
< QueryClientProvider client = { queryClient } >
0 commit comments