1
- import { describe , expect , test } from 'vitest'
2
- import { fireEvent , render , waitFor } from '@testing-library/svelte'
1
+ import { afterEach , beforeEach , describe , expect , test , vi } from 'vitest'
2
+ import { fireEvent , render } from '@testing-library/svelte'
3
3
import { derived , get , writable } from 'svelte/store'
4
4
import { QueryClient } from '@tanstack/query-core'
5
5
import { sleep } from '@tanstack/query-test-utils'
@@ -11,6 +11,14 @@ import type { Writable } from 'svelte/store'
11
11
import type { QueryObserverResult } from '@tanstack/query-core'
12
12
13
13
describe ( 'createQuery' , ( ) => {
14
+ beforeEach ( ( ) => {
15
+ vi . useFakeTimers ( )
16
+ } )
17
+
18
+ afterEach ( ( ) => {
19
+ vi . useRealTimers ( )
20
+ } )
21
+
14
22
test ( 'Return the correct states for a successful query' , async ( ) => {
15
23
const statesStore : Writable < Array < QueryObserverResult > > = writable ( [ ] )
16
24
@@ -30,7 +38,7 @@ describe('createQuery', () => {
30
38
} ,
31
39
} )
32
40
33
- await waitFor ( ( ) => {
41
+ await vi . waitFor ( ( ) => {
34
42
expect ( rendered . queryByText ( 'Status: success' ) ) . toBeInTheDocument ( )
35
43
} )
36
44
@@ -111,7 +119,9 @@ describe('createQuery', () => {
111
119
} ,
112
120
} )
113
121
114
- await waitFor ( ( ) => rendered . getByText ( 'Status: error' ) )
122
+ await vi . waitFor ( ( ) =>
123
+ expect ( rendered . getByText ( 'Status: error' ) ) . toBeInTheDocument ( ) ,
124
+ )
115
125
116
126
const states = get ( statesStore )
117
127
@@ -218,7 +228,7 @@ describe('createQuery', () => {
218
228
} ,
219
229
} )
220
230
221
- await waitFor ( ( ) => {
231
+ await vi . waitFor ( ( ) => {
222
232
expect ( rendered . queryByText ( 'Status: success' ) ) . toBeInTheDocument ( )
223
233
} )
224
234
} )
@@ -244,7 +254,7 @@ describe('createQuery', () => {
244
254
} ,
245
255
} )
246
256
247
- await waitFor ( ( ) => {
257
+ await vi . waitFor ( ( ) => {
248
258
expect ( rendered . queryByText ( 'Status: success' ) ) . toBeInTheDocument ( )
249
259
} )
250
260
} )
@@ -272,21 +282,21 @@ describe('createQuery', () => {
272
282
} ,
273
283
} )
274
284
275
- await waitFor ( ( ) => {
285
+ await vi . waitFor ( ( ) => {
276
286
expect ( rendered . queryByText ( 'Data: 1' ) ) . toBeInTheDocument ( )
277
287
expect ( rendered . queryByText ( 'Data: 2' ) ) . not . toBeInTheDocument ( )
278
288
} )
279
289
280
290
writableStore . set ( 2 )
281
291
282
- await waitFor ( ( ) => {
292
+ await vi . waitFor ( ( ) => {
283
293
expect ( rendered . queryByText ( 'Data: 1' ) ) . not . toBeInTheDocument ( )
284
294
expect ( rendered . queryByText ( 'Data: 2' ) ) . toBeInTheDocument ( )
285
295
} )
286
296
287
297
writableStore . set ( 1 )
288
298
289
- await waitFor ( ( ) => {
299
+ await vi . waitFor ( ( ) => {
290
300
expect ( rendered . queryByText ( 'Data: 1' ) ) . toBeInTheDocument ( )
291
301
expect ( rendered . queryByText ( 'Data: 2' ) ) . not . toBeInTheDocument ( )
292
302
} )
@@ -302,11 +312,15 @@ describe('createQuery', () => {
302
312
} ,
303
313
} )
304
314
305
- await waitFor ( ( ) => rendered . getByText ( 'Data: 0' ) )
315
+ await vi . waitFor ( ( ) =>
316
+ expect ( rendered . getByText ( 'Data: 0' ) ) . toBeInTheDocument ( ) ,
317
+ )
306
318
307
319
fireEvent . click ( rendered . getByRole ( 'button' , { name : 'setCount' } ) )
308
320
309
- await waitFor ( ( ) => rendered . getByText ( 'Data: 1' ) )
321
+ await vi . waitFor ( ( ) =>
322
+ expect ( rendered . getByText ( 'Data: 1' ) ) . toBeInTheDocument ( ) ,
323
+ )
310
324
311
325
const states = get ( statesStore )
312
326
@@ -354,13 +368,15 @@ describe('createQuery', () => {
354
368
} ,
355
369
} )
356
370
357
- await waitFor ( ( ) => rendered . getByText ( 'Data: 0' ) )
371
+ await vi . waitFor ( ( ) =>
372
+ expect ( rendered . getByText ( 'Data: 0' ) ) . toBeInTheDocument ( ) ,
373
+ )
358
374
359
375
fireEvent . click ( rendered . getByRole ( 'button' , { name : / I n c r e m e n t / i } ) )
360
376
361
- await waitFor ( ( ) => {
362
- rendered . getByText ( 'Count: 1' )
363
- rendered . getByText ( 'Data: undefined' )
377
+ await vi . waitFor ( ( ) => {
378
+ expect ( rendered . getByText ( 'Count: 1' ) ) . toBeInTheDocument ( )
379
+ expect ( rendered . getByText ( 'Data: undefined' ) ) . toBeInTheDocument ( )
364
380
} )
365
381
366
382
const states = get ( statesStore )
@@ -398,13 +414,17 @@ describe('createQuery', () => {
398
414
} ,
399
415
} )
400
416
401
- await waitFor ( ( ) => rendered . getByText ( 'Data: 1' ) )
417
+ await vi . waitFor ( ( ) =>
418
+ expect ( rendered . getByText ( 'Data: 1' ) ) . toBeInTheDocument ( ) ,
419
+ )
402
420
fireEvent . click ( rendered . getByRole ( 'button' , { name : / R e m o v e / i } ) )
403
421
404
- await sleep ( 5 )
422
+ await vi . advanceTimersByTimeAsync ( 5 )
405
423
406
424
fireEvent . click ( rendered . getByRole ( 'button' , { name : / R e f e t c h / i } ) )
407
- await waitFor ( ( ) => rendered . getByText ( 'Data: 2' ) )
425
+ await vi . waitFor ( ( ) =>
426
+ expect ( rendered . getByText ( 'Data: 2' ) ) . toBeInTheDocument ( ) ,
427
+ )
408
428
409
429
const states = get ( statesStore )
410
430
0 commit comments