1
- import { describe , expect , it , test , vi } from 'vitest'
1
+ import { afterEach , beforeEach , describe , expect , it , test , vi } from 'vitest'
2
2
import { onScopeDispose , reactive } from 'vue-demi'
3
3
import { sleep } from '@tanstack/query-test-utils'
4
4
import { useMutation } from '../useMutation'
@@ -9,12 +9,20 @@ import type { MockedFunction } from 'vitest'
9
9
vi . mock ( '../useQueryClient' )
10
10
11
11
describe ( 'useIsMutating' , ( ) => {
12
+ beforeEach ( ( ) => {
13
+ vi . useFakeTimers ( )
14
+ } )
15
+
16
+ afterEach ( ( ) => {
17
+ vi . useRealTimers ( )
18
+ } )
19
+
12
20
test ( 'should properly return isMutating state' , async ( ) => {
13
21
const mutation = useMutation ( {
14
- mutationFn : ( params : string ) => sleep ( 0 ) . then ( ( ) => params ) ,
22
+ mutationFn : ( params : string ) => sleep ( 10 ) . then ( ( ) => params ) ,
15
23
} )
16
24
const mutation2 = useMutation ( {
17
- mutationFn : ( params : string ) => sleep ( 0 ) . then ( ( ) => params ) ,
25
+ mutationFn : ( params : string ) => sleep ( 10 ) . then ( ( ) => params ) ,
18
26
} )
19
27
const isMutating = useIsMutating ( )
20
28
@@ -23,11 +31,11 @@ describe('useIsMutating', () => {
23
31
mutation . mutateAsync ( 'a' )
24
32
mutation2 . mutateAsync ( 'b' )
25
33
26
- await sleep ( 0 )
34
+ await vi . advanceTimersByTimeAsync ( 0 )
27
35
28
36
expect ( isMutating . value ) . toStrictEqual ( 2 )
29
37
30
- await sleep ( 0 )
38
+ await vi . advanceTimersByTimeAsync ( 10 )
31
39
32
40
expect ( isMutating . value ) . toStrictEqual ( 0 )
33
41
} )
@@ -51,11 +59,11 @@ describe('useIsMutating', () => {
51
59
mutation . mutateAsync ( 'a' )
52
60
mutation2 . mutateAsync ( 'b' )
53
61
54
- await sleep ( 0 )
62
+ await vi . advanceTimersByTimeAsync ( 0 )
55
63
56
64
expect ( isMutating . value ) . toStrictEqual ( 0 )
57
65
58
- await sleep ( 0 )
66
+ await vi . advanceTimersByTimeAsync ( 0 )
59
67
60
68
expect ( isMutating . value ) . toStrictEqual ( 0 )
61
69
@@ -66,7 +74,7 @@ describe('useIsMutating', () => {
66
74
const filter = reactive ( { mutationKey : [ 'foo' ] } )
67
75
const { mutate } = useMutation ( {
68
76
mutationKey : [ 'isMutating' ] ,
69
- mutationFn : ( params : string ) => sleep ( 0 ) . then ( ( ) => params ) ,
77
+ mutationFn : ( params : string ) => sleep ( 10 ) . then ( ( ) => params ) ,
70
78
} )
71
79
mutate ( 'foo' )
72
80
@@ -76,7 +84,7 @@ describe('useIsMutating', () => {
76
84
77
85
filter . mutationKey = [ 'isMutating' ]
78
86
79
- await sleep ( 0 )
87
+ await vi . advanceTimersByTimeAsync ( 0 )
80
88
81
89
expect ( isMutating . value ) . toStrictEqual ( 1 )
82
90
} )
0 commit comments