@@ -54,14 +54,10 @@ describe('useMutation', () => {
5454 expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( 'empty' )
5555
5656 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
57-
58- await vi . waitFor ( ( ) => {
59- expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( 'mutation' )
60- } )
57+ await vi . advanceTimersByTimeAsync ( 0 )
58+ expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( 'mutation' )
6159
6260 fireEvent . click ( rendered . getByRole ( 'button' , { name : / r e s e t / i } ) )
63-
64- await vi . waitFor ( ( ) => { } )
6561 expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( 'empty' )
6662 } )
6763
@@ -97,18 +93,13 @@ describe('useMutation', () => {
9793 expect ( rendered . queryByRole ( 'heading' ) ) . toBeNull ( )
9894
9995 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
100-
101- await vi . waitFor ( ( ) => {
102- expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe (
103- 'Expected mock error. All is well!' ,
104- )
105- } )
96+ await vi . advanceTimersByTimeAsync ( 0 )
97+ expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe (
98+ 'Expected mock error. All is well!' ,
99+ )
106100
107101 fireEvent . click ( rendered . getByRole ( 'button' , { name : / r e s e t / i } ) )
108-
109- await vi . waitFor ( ( ) => {
110- expect ( rendered . queryByRole ( 'heading' ) ) . toBeNull ( )
111- } )
102+ expect ( rendered . queryByRole ( 'heading' ) ) . toBeNull ( )
112103
113104 consoleMock . mockRestore ( )
114105 } )
@@ -155,22 +146,16 @@ describe('useMutation', () => {
155146 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
156147 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
157148 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
149+ await vi . advanceTimersByTimeAsync ( 0 )
150+ expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '3' )
158151
159- await vi . waitFor ( ( ) => {
160- expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '3' )
161- } )
162-
163- await vi . waitFor ( ( ) => {
164- expect ( onSuccessMock ) . toHaveBeenCalledTimes ( 3 )
165- } )
152+ expect ( onSuccessMock ) . toHaveBeenCalledTimes ( 3 )
166153
167154 expect ( onSuccessMock ) . toHaveBeenCalledWith ( 1 )
168155 expect ( onSuccessMock ) . toHaveBeenCalledWith ( 2 )
169156 expect ( onSuccessMock ) . toHaveBeenCalledWith ( 3 )
170157
171- await vi . waitFor ( ( ) => {
172- expect ( onSettledMock ) . toHaveBeenCalledTimes ( 3 )
173- } )
158+ expect ( onSettledMock ) . toHaveBeenCalledTimes ( 3 )
174159
175160 expect ( onSettledMock ) . toHaveBeenCalledWith ( 1 )
176161 expect ( onSettledMock ) . toHaveBeenCalledWith ( 2 )
@@ -222,34 +207,21 @@ describe('useMutation', () => {
222207
223208 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
224209 expect ( rendered . getByText ( 'Data' ) ) . toBeInTheDocument ( )
225- await vi . waitFor ( ( ) =>
226- expect ( rendered . getByText ( 'Status error' ) ) . toBeInTheDocument ( ) ,
227- )
228- await vi . waitFor ( ( ) =>
229- expect ( rendered . getByText ( 'Failed 1 times' ) ) . toBeInTheDocument ( ) ,
230- )
231- await vi . waitFor ( ( ) =>
232- expect (
233- rendered . getByText ( 'Failed because Error test Jonas' ) ,
234- ) . toBeInTheDocument ( ) ,
235- )
210+ await vi . advanceTimersByTimeAsync ( 0 )
211+ expect ( rendered . getByText ( 'Status error' ) ) . toBeInTheDocument ( )
212+ expect ( rendered . getByText ( 'Failed 1 times' ) ) . toBeInTheDocument ( )
213+ expect (
214+ rendered . getByText ( 'Failed because Error test Jonas' ) ,
215+ ) . toBeInTheDocument ( )
236216
237217 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
238- await vi . waitFor ( ( ) =>
239- expect ( rendered . getByText ( 'Status pending' ) ) . toBeInTheDocument ( ) ,
240- )
241- await vi . waitFor ( ( ) =>
242- expect ( rendered . getByText ( 'Status success' ) ) . toBeInTheDocument ( ) ,
243- )
244- await vi . waitFor ( ( ) =>
245- expect ( rendered . getByText ( 'Data 2' ) ) . toBeInTheDocument ( ) ,
246- )
247- await vi . waitFor ( ( ) =>
248- expect ( rendered . getByText ( 'Failed 0 times' ) ) . toBeInTheDocument ( ) ,
249- )
250- await vi . waitFor ( ( ) =>
251- expect ( rendered . getByText ( 'Failed because null' ) ) . toBeInTheDocument ( ) ,
252- )
218+ await vi . advanceTimersByTimeAsync ( 0 )
219+ expect ( rendered . getByText ( 'Status pending' ) ) . toBeInTheDocument ( )
220+ await vi . advanceTimersByTimeAsync ( 10 )
221+ expect ( rendered . getByText ( 'Status success' ) ) . toBeInTheDocument ( )
222+ expect ( rendered . getByText ( 'Data 2' ) ) . toBeInTheDocument ( )
223+ expect ( rendered . getByText ( 'Failed 0 times' ) ) . toBeInTheDocument ( )
224+ expect ( rendered . getByText ( 'Failed because null' ) ) . toBeInTheDocument ( )
253225 } )
254226
255227 it ( 'should be able to call `onError` and `onSettled` after each failed mutate' , async ( ) => {
@@ -300,14 +272,10 @@ describe('useMutation', () => {
300272 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
301273 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
302274 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
275+ await vi . advanceTimersByTimeAsync ( 0 )
276+ expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '3' )
303277
304- await vi . waitFor ( ( ) => {
305- expect ( rendered . getByRole ( 'heading' ) . textContent ) . toBe ( '3' )
306- } )
307-
308- await vi . waitFor ( ( ) => {
309- expect ( onErrorMock ) . toHaveBeenCalledTimes ( 3 )
310- } )
278+ expect ( onErrorMock ) . toHaveBeenCalledTimes ( 3 )
311279 expect ( onErrorMock ) . toHaveBeenCalledWith (
312280 'Expected mock error. All is well! 1' ,
313281 )
@@ -318,9 +286,7 @@ describe('useMutation', () => {
318286 'Expected mock error. All is well! 3' ,
319287 )
320288
321- await vi . waitFor ( ( ) => {
322- expect ( onSettledMock ) . toHaveBeenCalledTimes ( 3 )
323- } )
289+ expect ( onSettledMock ) . toHaveBeenCalledTimes ( 3 )
324290 expect ( onSettledMock ) . toHaveBeenCalledWith (
325291 'Expected mock error. All is well! 1' ,
326292 )
@@ -604,13 +570,17 @@ describe('useMutation', () => {
604570 </ QueryClientProvider >
605571 ) )
606572
607- await rendered . findByText ( 'data: null, status: idle, isPaused: false' )
573+ expect (
574+ rendered . getByText ( 'data: null, status: idle, isPaused: false' ) ,
575+ ) . toBeInTheDocument ( )
608576
609577 window . dispatchEvent ( new Event ( 'offline' ) )
610578
611579 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
612-
613- await rendered . findByText ( 'data: null, status: pending, isPaused: true' )
580+ await vi . advanceTimersByTimeAsync ( 0 )
581+ expect (
582+ rendered . getByText ( 'data: null, status: pending, isPaused: true' ) ,
583+ ) . toBeInTheDocument ( )
614584
615585 expect ( onMutate ) . toHaveBeenCalledTimes ( 1 )
616586 expect ( onMutate ) . toHaveBeenCalledWith ( 'todo' )
@@ -619,7 +589,9 @@ describe('useMutation', () => {
619589 window . dispatchEvent ( new Event ( 'online' ) )
620590
621591 await vi . advanceTimersByTimeAsync ( 10 )
622- await rendered . findByText ( 'data: 1, status: success, isPaused: false' )
592+ expect (
593+ rendered . getByText ( 'data: 1, status: success, isPaused: false' ) ,
594+ ) . toBeInTheDocument ( )
623595
624596 expect ( onMutate ) . toHaveBeenCalledTimes ( 1 )
625597 expect ( count ) . toBe ( 1 )
@@ -660,11 +632,11 @@ describe('useMutation', () => {
660632 </ QueryClientProvider >
661633 ) )
662634
663- await rendered . findByText ( 'data: null, status: idle, isPaused: false' )
664-
635+ rendered . getByText ( 'data: null, status: idle, isPaused: false' )
665636 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
666-
667- await rendered . findByText ( 'data: null, status: pending, isPaused: true' )
637+ expect (
638+ rendered . getByText ( 'data: null, status: pending, isPaused: true' ) ,
639+ ) . toBeInTheDocument ( )
668640
669641 // no intermediate 'pending, false' state is expected because we don't start mutating!
670642 expect ( states [ 0 ] ) . toBe ( 'idle, false' )
@@ -674,7 +646,9 @@ describe('useMutation', () => {
674646 window . dispatchEvent ( new Event ( 'online' ) )
675647
676648 await vi . advanceTimersByTimeAsync ( 10 )
677- await rendered . findByText ( 'data: 1, status: success, isPaused: false' )
649+ expect (
650+ rendered . getByText ( 'data: 1, status: success, isPaused: false' ) ,
651+ ) . toBeInTheDocument ( )
678652
679653 onlineMock . mockRestore ( )
680654 } )
@@ -831,10 +805,8 @@ describe('useMutation', () => {
831805 ) )
832806
833807 fireEvent . click ( rendered . getByText ( 'mutate' ) )
834-
835- await vi . waitFor ( ( ) => {
836- expect ( rendered . queryByText ( 'error' ) ) . not . toBeNull ( )
837- } )
808+ await vi . advanceTimersByTimeAsync ( 0 )
809+ expect ( rendered . queryByText ( 'error' ) ) . not . toBeNull ( )
838810
839811 consoleMock . mockRestore ( )
840812 } )
@@ -882,15 +854,13 @@ describe('useMutation', () => {
882854
883855 // first error goes to component
884856 fireEvent . click ( rendered . getByText ( 'mutate' ) )
885- await vi . waitFor ( ( ) => {
886- expect ( rendered . queryByText ( 'mock error' ) ) . not . toBeNull ( )
887- } )
857+ await vi . advanceTimersByTimeAsync ( 0 )
858+ expect ( rendered . queryByText ( 'mock error' ) ) . not . toBeNull ( )
888859
889860 // second error goes to boundary
890861 fireEvent . click ( rendered . getByText ( 'mutate' ) )
891- await vi . waitFor ( ( ) => {
892- expect ( rendered . queryByText ( 'error boundary' ) ) . not . toBeNull ( )
893- } )
862+ await vi . advanceTimersByTimeAsync ( 0 )
863+ expect ( rendered . queryByText ( 'error boundary' ) ) . not . toBeNull ( )
894864
895865 consoleMock . mockRestore ( )
896866 } )
@@ -943,14 +913,13 @@ describe('useMutation', () => {
943913
944914 fireEvent . click ( rendered . getByText ( 'succeed' ) )
945915 fireEvent . click ( rendered . getByText ( 'error' ) )
946-
947- await vi . waitFor ( ( ) => {
948- expect ( rendered . queryByText ( 'successTest' ) ) . not . toBeNull ( )
949- expect ( rendered . queryByText ( 'errorTest' ) ) . not . toBeNull ( )
950- } )
916+ await vi . advanceTimersByTimeAsync ( 0 )
917+ expect ( rendered . queryByText ( 'successTest' ) ) . not . toBeNull ( )
918+ expect ( rendered . queryByText ( 'errorTest' ) ) . not . toBeNull ( )
951919
952920 expect ( successMock ) . toHaveBeenCalledTimes ( 1 )
953921 expect ( successMock ) . toHaveBeenCalledWith ( metaSuccessMessage )
922+
954923 expect ( errorMock ) . toHaveBeenCalledTimes ( 1 )
955924 expect ( errorMock ) . toHaveBeenCalledWith ( metaErrorMessage )
956925 } )
@@ -1016,13 +985,10 @@ describe('useMutation', () => {
1016985
1017986 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
1018987 fireEvent . click ( rendered . getByRole ( 'button' , { name : / h i d e / i } ) )
1019-
1020- await vi . waitFor ( ( ) => {
1021- expect (
1022- queryClient . getMutationCache ( ) . findAll ( { mutationKey : mutationKey } ) ,
1023- ) . toHaveLength ( 0 )
1024- } )
1025-
988+ await vi . advanceTimersByTimeAsync ( 10 )
989+ expect (
990+ queryClient . getMutationCache ( ) . findAll ( { mutationKey : mutationKey } ) ,
991+ ) . toHaveLength ( 0 )
1026992 expect ( count ) . toBe ( 1 )
1027993
1028994 expect ( onSuccess ) . toHaveBeenCalledTimes ( 1 )
@@ -1166,20 +1132,14 @@ describe('useMutation', () => {
11661132 </ QueryClientProvider >
11671133 ) )
11681134
1169- await vi . waitFor ( ( ) =>
1170- expect (
1171- rendered . getByText ( 'error: null, status: idle' ) ,
1172- ) . toBeInTheDocument ( ) ,
1173- )
1135+ await vi . advanceTimersByTimeAsync ( 10 )
1136+ expect ( rendered . getByText ( 'error: null, status: idle' ) ) . toBeInTheDocument ( )
11741137
11751138 rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) . click ( )
1176-
11771139 await vi . advanceTimersByTimeAsync ( 10 )
1178- await vi . waitFor ( ( ) =>
1179- expect (
1180- rendered . getByText ( 'error: mutateFnError, status: error' ) ,
1181- ) . toBeInTheDocument ( ) ,
1182- )
1140+ expect (
1141+ rendered . getByText ( 'error: mutateFnError, status: error' ) ,
1142+ ) . toBeInTheDocument ( )
11831143 } )
11841144
11851145 it ( 'should go to error state if onSettled callback errors' , async ( ) => {
@@ -1215,12 +1175,13 @@ describe('useMutation', () => {
12151175 </ QueryClientProvider >
12161176 ) )
12171177
1218- await rendered . findByText ( 'error: null, status: idle' )
1178+ expect ( rendered . getByText ( 'error: null, status: idle' ) ) . toBeInTheDocument ( )
12191179
12201180 rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) . click ( )
1221-
12221181 await vi . advanceTimersByTimeAsync ( 10 )
1223- await rendered . findByText ( 'error: mutateFnError, status: error' )
1182+ expect (
1183+ rendered . getByText ( 'error: mutateFnError, status: error' ) ,
1184+ ) . toBeInTheDocument ( )
12241185
12251186 expect ( onError ) . toHaveBeenCalledWith ( mutateFnError , 'todo' , undefined )
12261187 } )
@@ -1250,18 +1211,12 @@ describe('useMutation', () => {
12501211
12511212 const rendered = render ( ( ) => < Page > </ Page > )
12521213
1253- await vi . waitFor ( ( ) =>
1254- expect (
1255- rendered . getByText ( 'data: null, status: idle' ) ,
1256- ) . toBeInTheDocument ( ) ,
1257- )
1214+ expect ( rendered . getByText ( 'data: null, status: idle' ) ) . toBeInTheDocument ( )
12581215
12591216 fireEvent . click ( rendered . getByRole ( 'button' , { name : / m u t a t e / i } ) )
1260-
1261- await vi . waitFor ( ( ) =>
1262- expect (
1263- rendered . getByText ( 'data: custom client, status: success' ) ,
1264- ) . toBeInTheDocument ( ) ,
1265- )
1217+ await vi . advanceTimersByTimeAsync ( 0 )
1218+ expect (
1219+ rendered . getByText ( 'data: custom client, status: success' ) ,
1220+ ) . toBeInTheDocument ( )
12661221 } )
12671222} )
0 commit comments