1
- import { describe , expect , test , vi } 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 { sleep } from '@tanstack/query-test-utils'
4
4
import ResetExample from './ResetExample.svelte'
5
5
import OnSuccessExample from './OnSuccessExample.svelte'
6
6
import FailureExample from './FailureExample.svelte'
7
7
8
8
describe ( 'createMutation' , ( ) => {
9
+ beforeEach ( ( ) => {
10
+ vi . useFakeTimers ( )
11
+ } )
12
+
13
+ afterEach ( ( ) => {
14
+ vi . useRealTimers ( )
15
+ } )
16
+
9
17
test ( 'Able to reset `error`' , async ( ) => {
10
18
const rendered = render ( ResetExample )
11
19
12
- await waitFor ( ( ) => {
20
+ await vi . waitFor ( ( ) => {
13
21
expect ( rendered . queryByText ( 'Error: undefined' ) ) . toBeInTheDocument ( )
14
22
} )
15
23
16
24
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
17
25
18
- await waitFor ( ( ) => {
26
+ await vi . waitFor ( ( ) => {
19
27
expect (
20
28
rendered . queryByText ( 'Error: Expected mock error' ) ,
21
29
) . toBeInTheDocument ( )
22
30
} )
23
31
24
32
fireEvent . click ( rendered . getByRole ( 'button' , { name : / R e s e t / i } ) )
25
33
26
- await waitFor ( ( ) => {
34
+ await vi . waitFor ( ( ) => {
27
35
expect ( rendered . queryByText ( 'Error: undefined' ) ) . toBeInTheDocument ( )
28
36
} )
29
37
} )
@@ -39,27 +47,27 @@ describe('createMutation', () => {
39
47
} ,
40
48
} )
41
49
42
- await waitFor ( ( ) => {
50
+ await vi . waitFor ( ( ) => {
43
51
expect ( rendered . queryByText ( 'Count: 0' ) ) . toBeInTheDocument ( )
44
52
} )
45
53
46
54
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
47
55
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
48
56
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
49
57
50
- await waitFor ( ( ) => {
58
+ await vi . waitFor ( ( ) => {
51
59
expect ( rendered . queryByText ( 'Count: 3' ) ) . toBeInTheDocument ( )
52
60
} )
53
61
54
- await waitFor ( ( ) => {
62
+ await vi . waitFor ( ( ) => {
55
63
expect ( onSuccessMock ) . toHaveBeenCalledTimes ( 3 )
56
64
} )
57
65
58
66
expect ( onSuccessMock ) . toHaveBeenCalledWith ( 1 )
59
67
expect ( onSuccessMock ) . toHaveBeenCalledWith ( 2 )
60
68
expect ( onSuccessMock ) . toHaveBeenCalledWith ( 3 )
61
69
62
- await waitFor ( ( ) => {
70
+ await vi . waitFor ( ( ) => {
63
71
expect ( onSettledMock ) . toHaveBeenCalledTimes ( 3 )
64
72
} )
65
73
@@ -88,21 +96,41 @@ describe('createMutation', () => {
88
96
} ,
89
97
} )
90
98
91
- await waitFor ( ( ) => rendered . queryByText ( 'Data: undefined' ) )
99
+ await vi . waitFor ( ( ) =>
100
+ expect ( rendered . queryByText ( 'Data: undefined' ) ) . toBeInTheDocument ( ) ,
101
+ )
92
102
93
103
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
94
- await waitFor ( ( ) => rendered . getByText ( 'Data: undefined' ) )
95
- await waitFor ( ( ) => rendered . getByText ( 'Status: error' ) )
96
- await waitFor ( ( ) => rendered . getByText ( 'Failure Count: 1' ) )
97
- await waitFor ( ( ) =>
98
- rendered . getByText ( 'Failure Reason: Expected mock error' ) ,
104
+ await vi . waitFor ( ( ) =>
105
+ expect ( rendered . getByText ( 'Data: undefined' ) ) . toBeInTheDocument ( ) ,
106
+ )
107
+ await vi . waitFor ( ( ) =>
108
+ expect ( rendered . getByText ( 'Status: error' ) ) . toBeInTheDocument ( ) ,
109
+ )
110
+ await vi . waitFor ( ( ) =>
111
+ expect ( rendered . getByText ( 'Failure Count: 1' ) ) . toBeInTheDocument ( ) ,
112
+ )
113
+ await vi . waitFor ( ( ) =>
114
+ expect (
115
+ rendered . getByText ( 'Failure Reason: Expected mock error' ) ,
116
+ ) . toBeInTheDocument ( ) ,
99
117
)
100
118
101
119
fireEvent . click ( rendered . getByRole ( 'button' , { name : / M u t a t e / i } ) )
102
- await waitFor ( ( ) => rendered . getByText ( 'Status: pending' ) )
103
- await waitFor ( ( ) => rendered . getByText ( 'Status: success' ) )
104
- await waitFor ( ( ) => rendered . getByText ( 'Data: 2' ) )
105
- await waitFor ( ( ) => rendered . getByText ( 'Failure Count: 0' ) )
106
- await waitFor ( ( ) => rendered . getByText ( 'Failure Reason: null' ) )
120
+ await vi . waitFor ( ( ) =>
121
+ expect ( rendered . getByText ( 'Status: pending' ) ) . toBeInTheDocument ( ) ,
122
+ )
123
+ await vi . waitFor ( ( ) =>
124
+ expect ( rendered . getByText ( 'Status: success' ) ) . toBeInTheDocument ( ) ,
125
+ )
126
+ await vi . waitFor ( ( ) =>
127
+ expect ( rendered . getByText ( 'Data: 2' ) ) . toBeInTheDocument ( ) ,
128
+ )
129
+ await vi . waitFor ( ( ) =>
130
+ expect ( rendered . getByText ( 'Failure Count: 0' ) ) . toBeInTheDocument ( ) ,
131
+ )
132
+ await vi . waitFor ( ( ) =>
133
+ expect ( rendered . getByText ( 'Failure Reason: null' ) ) . toBeInTheDocument ( ) ,
134
+ )
107
135
} )
108
136
} )
0 commit comments