@@ -26,26 +26,22 @@ describe('useIsMutating', () => {
2626
2727    function  IsMutating ( )  { 
2828      const  isMutating  =  useIsMutating ( ) 
29+ 
2930      createRenderEffect ( ( )  =>  { 
3031        isMutatingArray . push ( isMutating ( ) ) 
3132      } ) 
33+ 
3234      return  null 
3335    } 
3436
3537    function  Mutations ( )  { 
3638      const  {  mutate : mutate1  }  =  useMutation ( ( )  =>  ( { 
3739        mutationKey : [ 'mutation1' ] , 
38-         mutationFn : async  ( )  =>  { 
39-           await  sleep ( 150 ) 
40-           return  'data' 
41-         } , 
40+         mutationFn : ( )  =>  sleep ( 150 ) . then ( ( )  =>  'data' ) , 
4241      } ) ) 
4342      const  {  mutate : mutate2  }  =  useMutation ( ( )  =>  ( { 
4443        mutationKey : [ 'mutation2' ] , 
45-         mutationFn : async  ( )  =>  { 
46-           await  sleep ( 50 ) 
47-           return  'data' 
48-         } , 
44+         mutationFn : ( )  =>  sleep ( 50 ) . then ( ( )  =>  'data' ) , 
4945      } ) ) 
5046
5147      createEffect ( ( )  =>  { 
@@ -74,6 +70,7 @@ describe('useIsMutating', () => {
7470    ) ) 
7571
7672    await  vi . advanceTimersByTimeAsync ( 150 ) 
73+ 
7774    expect ( isMutatingArray ) . toEqual ( [ 0 ,  1 ,  2 ,  1 ,  0 ] ) 
7875  } ) 
7976
@@ -83,26 +80,22 @@ describe('useIsMutating', () => {
8380
8481    function  IsMutating ( )  { 
8582      const  isMutating  =  useIsMutating ( ( )  =>  ( {  mutationKey : [ 'mutation1' ]  } ) ) 
83+ 
8684      createRenderEffect ( ( )  =>  { 
8785        isMutatingArray . push ( isMutating ( ) ) 
8886      } ) 
87+ 
8988      return  null 
9089    } 
9190
9291    function  Page ( )  { 
9392      const  {  mutate : mutate1  }  =  useMutation ( ( )  =>  ( { 
9493        mutationKey : [ 'mutation1' ] , 
95-         mutationFn : async  ( )  =>  { 
96-           await  sleep ( 100 ) 
97-           return  'data' 
98-         } , 
94+         mutationFn : ( )  =>  sleep ( 100 ) . then ( ( )  =>  'data' ) , 
9995      } ) ) 
10096      const  {  mutate : mutate2  }  =  useMutation ( ( )  =>  ( { 
10197        mutationKey : [ 'mutation2' ] , 
102-         mutationFn : async  ( )  =>  { 
103-           await  sleep ( 100 ) 
104-           return  'data' 
105-         } , 
98+         mutationFn : ( )  =>  sleep ( 100 ) . then ( ( )  =>  'data' ) , 
10699      } ) ) 
107100
108101      createEffect ( ( )  =>  { 
@@ -121,6 +114,7 @@ describe('useIsMutating', () => {
121114
122115    // Unlike React, IsMutating Wont re-render twice with mutation2 
123116    await  vi . advanceTimersByTimeAsync ( 100 ) 
117+ 
124118    expect ( isMutatingArray ) . toEqual ( [ 0 ,  1 ,  0 ] ) 
125119  } ) 
126120
@@ -133,26 +127,22 @@ describe('useIsMutating', () => {
133127        predicate : ( mutation )  => 
134128          mutation . options . mutationKey ?. [ 0 ]  ===  'mutation1' , 
135129      } ) ) 
130+ 
136131      createRenderEffect ( ( )  =>  { 
137132        isMutatingArray . push ( isMutating ( ) ) 
138133      } ) 
134+ 
139135      return  null 
140136    } 
141137
142138    function  Page ( )  { 
143139      const  {  mutate : mutate1  }  =  useMutation ( ( )  =>  ( { 
144140        mutationKey : [ 'mutation1' ] , 
145-         mutationFn : async  ( )  =>  { 
146-           await  sleep ( 100 ) 
147-           return  'data' 
148-         } , 
141+         mutationFn : ( )  =>  sleep ( 100 ) . then ( ( )  =>  'data' ) , 
149142      } ) ) 
150143      const  {  mutate : mutate2  }  =  useMutation ( ( )  =>  ( { 
151144        mutationKey : [ 'mutation2' ] , 
152-         mutationFn : async  ( )  =>  { 
153-           await  sleep ( 100 ) 
154-           return  'data' 
155-         } , 
145+         mutationFn : ( )  =>  sleep ( 100 ) . then ( ( )  =>  'data' ) , 
156146      } ) ) 
157147
158148      createEffect ( ( )  =>  { 
@@ -171,6 +161,7 @@ describe('useIsMutating', () => {
171161
172162    // Again, No unnecessary re-renders like React 
173163    await  vi . advanceTimersByTimeAsync ( 100 ) 
164+ 
174165    expect ( isMutatingArray ) . toEqual ( [ 0 ,  1 ,  0 ] ) 
175166  } ) 
176167
@@ -182,16 +173,17 @@ describe('useIsMutating', () => {
182173      const  {  mutate }  =  useMutation ( 
183174        ( )  =>  ( { 
184175          mutationKey : [ 'mutation1' ] , 
185-           mutationFn : async  ( )  =>  { 
186-             await  sleep ( 10 ) 
187-             return  'data' 
188-           } , 
176+           mutationFn : ( )  =>  sleep ( 20 ) . then ( ( )  =>  'data' ) , 
189177        } ) , 
190178        ( )  =>  queryClient , 
191179      ) 
180+ 
192181      createEffect ( ( )  =>  { 
193-         mutate ( ) 
182+         setActTimeout ( ( )  =>  { 
183+           mutate ( ) 
184+         } ,  10 ) 
194185      } ) 
186+ 
195187      return  ( 
196188        < div > 
197189          < div > mutating: { isMutating ( ) } </ div > 
@@ -201,8 +193,11 @@ describe('useIsMutating', () => {
201193
202194    const  rendered  =  render ( ( )  =>  < Page > </ Page > ) 
203195
204-     await  vi . advanceTimersByTimeAsync ( 0 ) 
196+     expect ( rendered . getByText ( 'mutating: 0' ) ) . toBeInTheDocument ( ) 
197+     await  vi . advanceTimersByTimeAsync ( 10 ) 
205198    expect ( rendered . getByText ( 'mutating: 1' ) ) . toBeInTheDocument ( ) 
199+     await  vi . advanceTimersByTimeAsync ( 20 ) 
200+     expect ( rendered . getByText ( 'mutating: 0' ) ) . toBeInTheDocument ( ) 
206201  } ) 
207202
208203  // eslint-disable-next-line vitest/expect-expect 
@@ -231,12 +226,10 @@ describe('useIsMutating', () => {
231226
232227    function  Page ( )  { 
233228      const  [ mounted ,  setMounted ]  =  createSignal ( true ) 
229+ 
234230      const  {  mutate : mutate1  }  =  useMutation ( ( )  =>  ( { 
235231        mutationKey : [ 'mutation1' ] , 
236-         mutationFn : async  ( )  =>  { 
237-           await  sleep ( 10 ) 
238-           return  'data' 
239-         } , 
232+         mutationFn : ( )  =>  sleep ( 10 ) . then ( ( )  =>  'data' ) , 
240233      } ) ) 
241234
242235      createEffect ( ( )  =>  { 
@@ -258,6 +251,7 @@ describe('useIsMutating', () => {
258251        < Page  /> 
259252      </ QueryClientProvider > 
260253    ) ) 
254+ 
261255    fireEvent . click ( rendered . getByText ( 'unmount' ) ) 
262256
263257    // Should not display the console error 
0 commit comments