Skip to content

Commit 5e6e36d

Browse files
sukvvonmanudeli
andauthored
test(query-core/queryObserver): remove 'vi.waitFor' and add 'advanceTimersByTimeAsync' (#9343)
Co-authored-by: Jonghyeon Ko <manudeli.ko@gmail.com>
1 parent a5319d5 commit 5e6e36d

File tree

1 file changed

+34
-29
lines changed

1 file changed

+34
-29
lines changed

packages/query-core/src/__tests__/queryObserver.test.tsx

Lines changed: 34 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,8 @@ describe('queryObserver', () => {
109109
fetchStatus: 'idle',
110110
data: undefined,
111111
})
112-
await vi.waitFor(() => expect(count).toBe(0))
112+
await vi.advanceTimersByTimeAsync(10)
113+
expect(count).toBe(0)
113114

114115
unsubscribe()
115116
})
@@ -128,7 +129,8 @@ describe('queryObserver', () => {
128129
data: undefined,
129130
})
130131

131-
await vi.waitFor(() => expect(count).toBe(1))
132+
await vi.advanceTimersByTimeAsync(10)
133+
expect(count).toBe(1)
132134
expect(observer.getCurrentResult()).toMatchObject({
133135
status: 'success',
134136
fetchStatus: 'idle',
@@ -157,8 +159,8 @@ describe('queryObserver', () => {
157159
fetchStatus: 'fetching',
158160
data: undefined,
159161
})
160-
161-
await vi.waitFor(() => expect(count).toBe(1))
162+
await vi.advanceTimersByTimeAsync(10)
163+
expect(count).toBe(1)
162164

163165
unsubscribe()
164166
})
@@ -194,7 +196,8 @@ describe('queryObserver', () => {
194196
fetchStatus: 'fetching',
195197
data: undefined,
196198
})
197-
await vi.waitFor(() => expect(count).toBe(1))
199+
await vi.advanceTimersByTimeAsync(10)
200+
expect(count).toBe(1)
198201

199202
unsubscribe()
200203
})
@@ -208,20 +211,23 @@ describe('queryObserver', () => {
208211
queryClient.invalidateQueries({ queryKey: key, refetchType: 'inactive' })
209212

210213
// should not refetch since it was active and we only refetch inactive
211-
await vi.waitFor(() => expect(count).toBe(0))
214+
await vi.advanceTimersByTimeAsync(10)
215+
expect(count).toBe(0)
212216

213217
queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' })
214218

215219
// should refetch since it was active and we refetch active
216-
await vi.waitFor(() => expect(count).toBe(1))
220+
await vi.advanceTimersByTimeAsync(10)
221+
expect(count).toBe(1)
217222

218223
// Toggle enabled
219224
enabled = false
220225

221226
// should not refetch since it is not active and we only refetch active
222227
queryClient.invalidateQueries({ queryKey: key, refetchType: 'active' })
223228

224-
await vi.waitFor(() => expect(count).toBe(1))
229+
await vi.advanceTimersByTimeAsync(10)
230+
expect(count).toBe(1)
225231

226232
unsubscribe()
227233
})
@@ -251,7 +257,8 @@ describe('queryObserver', () => {
251257
data: undefined,
252258
})
253259

254-
await vi.waitFor(() => expect(count).toBe(1))
260+
await vi.advanceTimersByTimeAsync(10)
261+
expect(count).toBe(1)
255262

256263
// re-subscribe after data comes in
257264
unsubscribe = observer.subscribe(vi.fn())
@@ -1172,8 +1179,10 @@ describe('queryObserver', () => {
11721179
}
11731180
})
11741181

1175-
await vi.waitFor(() => expect(results[0]?.isStale).toBe(false))
1176-
await vi.waitFor(() => expect(results[1]?.isStale).toBe(true))
1182+
await vi.advanceTimersByTimeAsync(25)
1183+
expect(results[0]?.isStale).toBe(false)
1184+
await vi.advanceTimersByTimeAsync(1)
1185+
expect(results[1]?.isStale).toBe(true)
11771186

11781187
unsubscribe()
11791188
})
@@ -1200,7 +1209,8 @@ describe('queryObserver', () => {
12001209
}
12011210
})
12021211

1203-
await vi.waitFor(() => expect(results[0]?.isStale).toBe(false))
1212+
await vi.advanceTimersByTimeAsync(5)
1213+
expect(results[0]?.isStale).toBe(false)
12041214

12051215
unsubscribe()
12061216
})
@@ -1224,9 +1234,8 @@ describe('queryObserver', () => {
12241234
results.push(observer.getCurrentResult())
12251235
})
12261236

1227-
await vi.waitFor(() => {
1228-
expect(results.at(-1)?.data).toBe('data')
1229-
})
1237+
await vi.advanceTimersByTimeAsync(10)
1238+
expect(results.at(-1)?.data).toBe('data')
12301239

12311240
const numberOfUniquePromises = new Set(
12321241
results.map((result) => result.promise),
@@ -1257,9 +1266,8 @@ describe('queryObserver', () => {
12571266
results.push(observer.getCurrentResult())
12581267
})
12591268

1260-
await vi.waitFor(() => {
1261-
expect(results.at(-1)?.status).toBe('error')
1262-
})
1269+
await vi.advanceTimersByTimeAsync(5)
1270+
expect(results.at(-1)?.status).toBe('error')
12631271

12641272
expect(
12651273
results.every((result) => result.promise === results[0]!.promise),
@@ -1269,10 +1277,9 @@ describe('queryObserver', () => {
12691277
// fail again
12701278
const lengthBefore = results.length
12711279
observer.refetch()
1272-
await vi.waitFor(() => {
1273-
expect(results.length).toBeGreaterThan(lengthBefore)
1274-
expect(results.at(-1)?.status).toBe('error')
1275-
})
1280+
await vi.advanceTimersByTimeAsync(5)
1281+
expect(results.length).toBeGreaterThan(lengthBefore)
1282+
expect(results.at(-1)?.status).toBe('error')
12761283

12771284
const numberOfUniquePromises = new Set(
12781285
results.map((result) => result.promise),
@@ -1285,9 +1292,8 @@ describe('queryObserver', () => {
12851292
succeeds = true
12861293
observer.refetch()
12871294

1288-
await vi.waitFor(() => {
1289-
results.at(-1)?.status === 'success'
1290-
})
1295+
await vi.advanceTimersByTimeAsync(5)
1296+
results.at(-1)?.status === 'success'
12911297

12921298
const numberOfUniquePromises = new Set(
12931299
results.map((result) => result.promise),
@@ -1359,10 +1365,9 @@ describe('queryObserver', () => {
13591365
results.push(result)
13601366
})
13611367

1362-
await vi.waitFor(() => {
1363-
const lastResult = results[results.length - 1]
1364-
expect(lastResult?.status).toBe('error')
1365-
})
1368+
await vi.advanceTimersByTimeAsync(0)
1369+
const lastResult = results[results.length - 1]
1370+
expect(lastResult?.status).toBe('error')
13661371

13671372
expect(results.length).toBe(1)
13681373
expect(results[0]).toMatchObject({

0 commit comments

Comments
 (0)