Skip to content

Commit 72c2a4c

Browse files
sukvvonmanudeli
andauthored
test(react-query/ssr): simplify 'queryFn' and add 'sleep' for accurate testing (#9471)
Co-authored-by: Jonghyeon Ko <[email protected]>
1 parent db6281e commit 72c2a4c

File tree

1 file changed

+11
-15
lines changed

1 file changed

+11
-15
lines changed

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

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ describe('Server Side Rendering', () => {
2929

3030
it('should not trigger fetch', () => {
3131
const key = queryKey()
32-
const queryFn = vi.fn().mockReturnValue('data')
32+
const queryFn = vi.fn(() => sleep(10).then(() => 'data'))
3333

3434
function Page() {
3535
const query = useQuery({ queryKey: key, queryFn })
@@ -51,6 +51,7 @@ describe('Server Side Rendering', () => {
5151

5252
expect(markup).toContain('status pending')
5353
expect(queryFn).toHaveBeenCalledTimes(0)
54+
5455
queryCache.clear()
5556
})
5657

@@ -59,26 +60,21 @@ describe('Server Side Rendering', () => {
5960

6061
const promise = queryClient.fetchQuery({
6162
queryKey: key,
62-
queryFn: async () => {
63-
await sleep(10)
64-
return 'data'
65-
},
63+
queryFn: () => sleep(10).then(() => 'data'),
6664
})
6765
await vi.advanceTimersByTimeAsync(10)
6866

6967
const data = await promise
7068

7169
expect(data).toBe('data')
7270
expect(queryCache.find({ queryKey: key })?.state.data).toBe('data')
71+
7372
queryCache.clear()
7473
})
7574

7675
it('should return existing data from the cache', async () => {
7776
const key = queryKey()
78-
const queryFn = vi.fn(async () => {
79-
await sleep(10)
80-
return 'data'
81-
})
77+
const queryFn = vi.fn(() => sleep(10).then(() => 'data'))
8278

8379
function Page() {
8480
const query = useQuery({ queryKey: key, queryFn })
@@ -103,6 +99,7 @@ describe('Server Side Rendering', () => {
10399

104100
expect(markup).toContain('status success')
105101
expect(queryFn).toHaveBeenCalledTimes(1)
102+
106103
queryCache.clear()
107104
})
108105

@@ -113,7 +110,7 @@ describe('Server Side Rendering', () => {
113110
const [page, setPage] = React.useState(1)
114111
const { data } = useQuery({
115112
queryKey: [key, page],
116-
queryFn: () => Promise.resolve(page),
113+
queryFn: () => sleep(10).then(() => page),
117114
initialData: 1,
118115
})
119116

@@ -134,15 +131,13 @@ describe('Server Side Rendering', () => {
134131
const keys = queryCache.getAll().map((query) => query.queryKey)
135132

136133
expect(keys).toEqual([[key, 1]])
134+
137135
queryCache.clear()
138136
})
139137

140138
it('useInfiniteQuery should return the correct state', async () => {
141139
const key = queryKey()
142-
const queryFn = vi.fn(async () => {
143-
await sleep(5)
144-
return 'page 1'
145-
})
140+
const queryFn = vi.fn(() => sleep(10).then(() => 'page 1'))
146141

147142
function Page() {
148143
const query = useInfiniteQuery({
@@ -165,7 +160,7 @@ describe('Server Side Rendering', () => {
165160
queryFn,
166161
initialPageParam: 0,
167162
})
168-
await vi.advanceTimersByTimeAsync(5)
163+
await vi.advanceTimersByTimeAsync(10)
169164

170165
const markup = renderToString(
171166
<QueryClientProvider client={queryClient}>
@@ -175,6 +170,7 @@ describe('Server Side Rendering', () => {
175170

176171
expect(markup).toContain('page 1')
177172
expect(queryFn).toHaveBeenCalledTimes(1)
173+
178174
queryCache.clear()
179175
})
180176
})

0 commit comments

Comments
 (0)