rescript-vitest-extras 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.yarnrc.yml +1 -0
- package/CHANGELOG.md +16 -0
- package/README.md +187 -0
- package/package.json +47 -0
- package/rescript.json +34 -0
- package/src/VitestExtras.res +8 -0
- package/src/VitestExtras__Assert.res +627 -0
- package/src/VitestExtras__Assert.resi +302 -0
- package/src/VitestExtras__BrowserExpect.res +159 -0
- package/src/VitestExtras__BrowserExpect.resi +159 -0
- package/src/VitestExtras__BrowserLocator.res +190 -0
- package/src/VitestExtras__BrowserLocator.resi +190 -0
- package/src/VitestExtras__BrowserPage.res +119 -0
- package/src/VitestExtras__BrowserPage.resi +62 -0
- package/src/VitestExtras__BrowserReact.res +201 -0
- package/src/VitestExtras__BrowserReact.resi +201 -0
- package/src/VitestExtras__BrowserUserEvent.res +200 -0
- package/src/VitestExtras__BrowserUserEvent.resi +109 -0
- package/src/VitestExtras__Mock.res +639 -0
- package/src/VitestExtras__Mock.resi +432 -0
- package/src/VitestExtras__MockExpect.res +455 -0
|
@@ -0,0 +1,432 @@
|
|
|
1
|
+
// VitestMock.resi - Strongly-typed bindings for Vitest's mocking API
|
|
2
|
+
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Mock Result Types
|
|
5
|
+
// =============================================================================
|
|
6
|
+
|
|
7
|
+
/** Type of a mock result - discriminator field */
|
|
8
|
+
type mockResultType = [#return | #incomplete | #throw]
|
|
9
|
+
|
|
10
|
+
/** Result of a single mock function invocation.
|
|
11
|
+
Use `type_` to discriminate:
|
|
12
|
+
- #return: successful return, `value` contains the return value
|
|
13
|
+
- #incomplete: function hasn't returned yet
|
|
14
|
+
- #throw: function threw an error, `value` contains the error */
|
|
15
|
+
type mockResult<'ret> = {
|
|
16
|
+
@as("type") type_: mockResultType,
|
|
17
|
+
value: 'ret,
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/** Type of a settled result - discriminator field */
|
|
21
|
+
type mockSettledResultType = [#fulfilled | #rejected]
|
|
22
|
+
|
|
23
|
+
/** Settled result for async mock functions.
|
|
24
|
+
Use `type_` to discriminate:
|
|
25
|
+
- #fulfilled: promise resolved, `value` contains the resolved value
|
|
26
|
+
- #rejected: promise rejected, `value` contains the rejection reason */
|
|
27
|
+
type mockSettledResult<'ret> = {
|
|
28
|
+
@as("type") type_: mockSettledResultType,
|
|
29
|
+
value: 'ret,
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
// =============================================================================
|
|
33
|
+
// Mock Context Types (per arity)
|
|
34
|
+
// =============================================================================
|
|
35
|
+
|
|
36
|
+
/** Context for 0-arity mock functions */
|
|
37
|
+
type mockContext0<'ret> = {
|
|
38
|
+
calls: array<unit>,
|
|
39
|
+
instances: array<'ret>,
|
|
40
|
+
contexts: array<unknown>,
|
|
41
|
+
invocationCallOrder: array<int>,
|
|
42
|
+
results: array<mockResult<'ret>>,
|
|
43
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
44
|
+
lastCall: option<unit>,
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** Context for 1-arity mock functions.
|
|
48
|
+
Note: calls and lastCall use array<'a> because Vitest stores
|
|
49
|
+
single-argument calls as [arg] arrays */
|
|
50
|
+
type mockContext1<'a, 'ret> = {
|
|
51
|
+
calls: array<array<'a>>,
|
|
52
|
+
instances: array<'ret>,
|
|
53
|
+
contexts: array<unknown>,
|
|
54
|
+
invocationCallOrder: array<int>,
|
|
55
|
+
results: array<mockResult<'ret>>,
|
|
56
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
57
|
+
lastCall: option<array<'a>>,
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/** Context for 2-arity mock functions */
|
|
61
|
+
type mockContext2<'a, 'b, 'ret> = {
|
|
62
|
+
calls: array<('a, 'b)>,
|
|
63
|
+
instances: array<'ret>,
|
|
64
|
+
contexts: array<unknown>,
|
|
65
|
+
invocationCallOrder: array<int>,
|
|
66
|
+
results: array<mockResult<'ret>>,
|
|
67
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
68
|
+
lastCall: option<('a, 'b)>,
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/** Context for 3-arity mock functions */
|
|
72
|
+
type mockContext3<'a, 'b, 'c, 'ret> = {
|
|
73
|
+
calls: array<('a, 'b, 'c)>,
|
|
74
|
+
instances: array<'ret>,
|
|
75
|
+
contexts: array<unknown>,
|
|
76
|
+
invocationCallOrder: array<int>,
|
|
77
|
+
results: array<mockResult<'ret>>,
|
|
78
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
79
|
+
lastCall: option<('a, 'b, 'c)>,
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/** Context for 4-arity mock functions */
|
|
83
|
+
type mockContext4<'a, 'b, 'c, 'd, 'ret> = {
|
|
84
|
+
calls: array<('a, 'b, 'c, 'd)>,
|
|
85
|
+
instances: array<'ret>,
|
|
86
|
+
contexts: array<unknown>,
|
|
87
|
+
invocationCallOrder: array<int>,
|
|
88
|
+
results: array<mockResult<'ret>>,
|
|
89
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
90
|
+
lastCall: option<('a, 'b, 'c, 'd)>,
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** Context for 5-arity mock functions */
|
|
94
|
+
type mockContext5<'a, 'b, 'c, 'd, 'e, 'ret> = {
|
|
95
|
+
calls: array<('a, 'b, 'c, 'd, 'e)>,
|
|
96
|
+
instances: array<'ret>,
|
|
97
|
+
contexts: array<unknown>,
|
|
98
|
+
invocationCallOrder: array<int>,
|
|
99
|
+
results: array<mockResult<'ret>>,
|
|
100
|
+
settledResults: array<mockSettledResult<'ret>>,
|
|
101
|
+
lastCall: option<('a, 'b, 'c, 'd, 'e)>,
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// =============================================================================
|
|
105
|
+
// Mock Function Types (per arity)
|
|
106
|
+
// =============================================================================
|
|
107
|
+
|
|
108
|
+
/** Mock function with 0 arguments: () => 'ret */
|
|
109
|
+
type mockFn0<'ret>
|
|
110
|
+
|
|
111
|
+
/** Mock function with 1 argument: 'a => 'ret */
|
|
112
|
+
type mockFn1<'a, 'ret>
|
|
113
|
+
|
|
114
|
+
/** Mock function with 2 arguments: ('a, 'b) => 'ret */
|
|
115
|
+
type mockFn2<'a, 'b, 'ret>
|
|
116
|
+
|
|
117
|
+
/** Mock function with 3 arguments: ('a, 'b, 'c) => 'ret */
|
|
118
|
+
type mockFn3<'a, 'b, 'c, 'ret>
|
|
119
|
+
|
|
120
|
+
/** Mock function with 4 arguments: ('a, 'b, 'c, 'd) => 'ret */
|
|
121
|
+
type mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
122
|
+
|
|
123
|
+
/** Mock function with 5 arguments: ('a, 'b, 'c, 'd, 'e) => 'ret */
|
|
124
|
+
type mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
125
|
+
|
|
126
|
+
// =============================================================================
|
|
127
|
+
// vi.fn() - Create Mock Functions
|
|
128
|
+
// =============================================================================
|
|
129
|
+
|
|
130
|
+
/** Create a mock function with 0 arguments.
|
|
131
|
+
Note: When called without implementation, will return undefined at runtime.
|
|
132
|
+
For type safety, either:
|
|
133
|
+
- Annotate the type: `let mock: mockFn0<int> = fn0()`
|
|
134
|
+
- Use fnWithImpl0: `let mock = fnWithImpl0(() => 42)` */
|
|
135
|
+
let fn0: unit => mockFn0<'ret>
|
|
136
|
+
|
|
137
|
+
/** Create a mock function with an implementation: () => 'ret */
|
|
138
|
+
let fnWithImpl0: (unit => 'ret) => mockFn0<'ret>
|
|
139
|
+
|
|
140
|
+
/** Create a mock function with 1 argument.
|
|
141
|
+
Note: When called without implementation, will return undefined at runtime. */
|
|
142
|
+
let fn1: unit => mockFn1<'a, 'ret>
|
|
143
|
+
|
|
144
|
+
/** Create a mock function with an implementation: 'a => 'ret */
|
|
145
|
+
let fnWithImpl1: ('a => 'ret) => mockFn1<'a, 'ret>
|
|
146
|
+
|
|
147
|
+
/** Create a mock function with 2 arguments.
|
|
148
|
+
Note: When called without implementation, will return undefined at runtime. */
|
|
149
|
+
let fn2: unit => mockFn2<'a, 'b, 'ret>
|
|
150
|
+
|
|
151
|
+
/** Create a mock function with an implementation: ('a, 'b) => 'ret */
|
|
152
|
+
let fnWithImpl2: (('a, 'b) => 'ret) => mockFn2<'a, 'b, 'ret>
|
|
153
|
+
|
|
154
|
+
/** Create a mock function with 3 arguments.
|
|
155
|
+
Note: When called without implementation, will return undefined at runtime. */
|
|
156
|
+
let fn3: unit => mockFn3<'a, 'b, 'c, 'ret>
|
|
157
|
+
|
|
158
|
+
/** Create a mock function with an implementation: ('a, 'b, 'c) => 'ret */
|
|
159
|
+
let fnWithImpl3: (('a, 'b, 'c) => 'ret) => mockFn3<'a, 'b, 'c, 'ret>
|
|
160
|
+
|
|
161
|
+
/** Create a mock function with 4 arguments.
|
|
162
|
+
Note: When called without implementation, will return undefined at runtime. */
|
|
163
|
+
let fn4: unit => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
164
|
+
|
|
165
|
+
/** Create a mock function with an implementation: ('a, 'b, 'c, 'd) => 'ret */
|
|
166
|
+
let fnWithImpl4: (('a, 'b, 'c, 'd) => 'ret) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
167
|
+
|
|
168
|
+
/** Create a mock function with 5 arguments.
|
|
169
|
+
Note: When called without implementation, will return undefined at runtime. */
|
|
170
|
+
let fn5: unit => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
171
|
+
|
|
172
|
+
/** Create a mock function with an implementation: ('a, 'b, 'c, 'd, 'e) => 'ret */
|
|
173
|
+
let fnWithImpl5: (('a, 'b, 'c, 'd, 'e) => 'ret) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
174
|
+
|
|
175
|
+
// =============================================================================
|
|
176
|
+
// Mock Instance Methods - mockFn0
|
|
177
|
+
// =============================================================================
|
|
178
|
+
|
|
179
|
+
module MockFn0: {
|
|
180
|
+
/** Get the mock context containing calls, results, etc. */
|
|
181
|
+
let mock: mockFn0<'ret> => mockContext0<'ret>
|
|
182
|
+
|
|
183
|
+
/** Get the mock function name */
|
|
184
|
+
let getMockName: mockFn0<'ret> => string
|
|
185
|
+
|
|
186
|
+
/** Set the mock function name */
|
|
187
|
+
let mockName: (mockFn0<'ret>, string) => mockFn0<'ret>
|
|
188
|
+
|
|
189
|
+
/** Clear all information about every call */
|
|
190
|
+
let mockClear: mockFn0<'ret> => mockFn0<'ret>
|
|
191
|
+
|
|
192
|
+
/** Clear and reset to original implementation */
|
|
193
|
+
let mockReset: mockFn0<'ret> => mockFn0<'ret>
|
|
194
|
+
|
|
195
|
+
/** Restore original implementation (for spies) */
|
|
196
|
+
let mockRestore: mockFn0<'ret> => unit
|
|
197
|
+
|
|
198
|
+
/** Get current mock implementation */
|
|
199
|
+
let getMockImplementation: mockFn0<'ret> => option<unit => 'ret>
|
|
200
|
+
|
|
201
|
+
/** Set mock implementation */
|
|
202
|
+
let mockImplementation: (mockFn0<'ret>, unit => 'ret) => mockFn0<'ret>
|
|
203
|
+
|
|
204
|
+
/** Set mock implementation for next call only */
|
|
205
|
+
let mockImplementationOnce: (mockFn0<'ret>, unit => 'ret) => mockFn0<'ret>
|
|
206
|
+
|
|
207
|
+
/** Return `this` when called */
|
|
208
|
+
let mockReturnThis: mockFn0<'ret> => mockFn0<'ret>
|
|
209
|
+
|
|
210
|
+
/** Set return value for all calls */
|
|
211
|
+
let mockReturnValue: (mockFn0<'ret>, 'ret) => mockFn0<'ret>
|
|
212
|
+
|
|
213
|
+
/** Set return value for next call only */
|
|
214
|
+
let mockReturnValueOnce: (mockFn0<'ret>, 'ret) => mockFn0<'ret>
|
|
215
|
+
|
|
216
|
+
/** Set resolved value for async mock */
|
|
217
|
+
let mockResolvedValue: (mockFn0<promise<'ret>>, 'ret) => mockFn0<promise<'ret>>
|
|
218
|
+
|
|
219
|
+
/** Set resolved value for next async call only */
|
|
220
|
+
let mockResolvedValueOnce: (mockFn0<promise<'ret>>, 'ret) => mockFn0<promise<'ret>>
|
|
221
|
+
|
|
222
|
+
/** Set rejected value for async mock */
|
|
223
|
+
let mockRejectedValue: (mockFn0<promise<'ret>>, unknown) => mockFn0<promise<'ret>>
|
|
224
|
+
|
|
225
|
+
/** Set rejected value for next async call only */
|
|
226
|
+
let mockRejectedValueOnce: (mockFn0<promise<'ret>>, unknown) => mockFn0<promise<'ret>>
|
|
227
|
+
|
|
228
|
+
/** Convert to a callable function */
|
|
229
|
+
let toFunction: mockFn0<'ret> => unit => 'ret
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// =============================================================================
|
|
233
|
+
// Mock Instance Methods - mockFn1
|
|
234
|
+
// =============================================================================
|
|
235
|
+
|
|
236
|
+
module MockFn1: {
|
|
237
|
+
let mock: mockFn1<'a, 'ret> => mockContext1<'a, 'ret>
|
|
238
|
+
let getMockName: mockFn1<'a, 'ret> => string
|
|
239
|
+
let mockName: (mockFn1<'a, 'ret>, string) => mockFn1<'a, 'ret>
|
|
240
|
+
let mockClear: mockFn1<'a, 'ret> => mockFn1<'a, 'ret>
|
|
241
|
+
let mockReset: mockFn1<'a, 'ret> => mockFn1<'a, 'ret>
|
|
242
|
+
let mockRestore: mockFn1<'a, 'ret> => unit
|
|
243
|
+
let getMockImplementation: mockFn1<'a, 'ret> => option<'a => 'ret>
|
|
244
|
+
let mockImplementation: (mockFn1<'a, 'ret>, 'a => 'ret) => mockFn1<'a, 'ret>
|
|
245
|
+
let mockImplementationOnce: (mockFn1<'a, 'ret>, 'a => 'ret) => mockFn1<'a, 'ret>
|
|
246
|
+
let mockReturnThis: mockFn1<'a, 'ret> => mockFn1<'a, 'ret>
|
|
247
|
+
let mockReturnValue: (mockFn1<'a, 'ret>, 'ret) => mockFn1<'a, 'ret>
|
|
248
|
+
let mockReturnValueOnce: (mockFn1<'a, 'ret>, 'ret) => mockFn1<'a, 'ret>
|
|
249
|
+
let mockResolvedValue: (mockFn1<'a, promise<'ret>>, 'ret) => mockFn1<'a, promise<'ret>>
|
|
250
|
+
let mockResolvedValueOnce: (mockFn1<'a, promise<'ret>>, 'ret) => mockFn1<'a, promise<'ret>>
|
|
251
|
+
let mockRejectedValue: (mockFn1<'a, promise<'ret>>, unknown) => mockFn1<'a, promise<'ret>>
|
|
252
|
+
let mockRejectedValueOnce: (mockFn1<'a, promise<'ret>>, unknown) => mockFn1<'a, promise<'ret>>
|
|
253
|
+
let toFunction: mockFn1<'a, 'ret> => 'a => 'ret
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// =============================================================================
|
|
257
|
+
// Mock Instance Methods - mockFn2
|
|
258
|
+
// =============================================================================
|
|
259
|
+
|
|
260
|
+
module MockFn2: {
|
|
261
|
+
let mock: mockFn2<'a, 'b, 'ret> => mockContext2<'a, 'b, 'ret>
|
|
262
|
+
let getMockName: mockFn2<'a, 'b, 'ret> => string
|
|
263
|
+
let mockName: (mockFn2<'a, 'b, 'ret>, string) => mockFn2<'a, 'b, 'ret>
|
|
264
|
+
let mockClear: mockFn2<'a, 'b, 'ret> => mockFn2<'a, 'b, 'ret>
|
|
265
|
+
let mockReset: mockFn2<'a, 'b, 'ret> => mockFn2<'a, 'b, 'ret>
|
|
266
|
+
let mockRestore: mockFn2<'a, 'b, 'ret> => unit
|
|
267
|
+
let getMockImplementation: mockFn2<'a, 'b, 'ret> => option<('a, 'b) => 'ret>
|
|
268
|
+
let mockImplementation: (mockFn2<'a, 'b, 'ret>, ('a, 'b) => 'ret) => mockFn2<'a, 'b, 'ret>
|
|
269
|
+
let mockImplementationOnce: (mockFn2<'a, 'b, 'ret>, ('a, 'b) => 'ret) => mockFn2<'a, 'b, 'ret>
|
|
270
|
+
let mockReturnThis: mockFn2<'a, 'b, 'ret> => mockFn2<'a, 'b, 'ret>
|
|
271
|
+
let mockReturnValue: (mockFn2<'a, 'b, 'ret>, 'ret) => mockFn2<'a, 'b, 'ret>
|
|
272
|
+
let mockReturnValueOnce: (mockFn2<'a, 'b, 'ret>, 'ret) => mockFn2<'a, 'b, 'ret>
|
|
273
|
+
let mockResolvedValue: (mockFn2<'a, 'b, promise<'ret>>, 'ret) => mockFn2<'a, 'b, promise<'ret>>
|
|
274
|
+
let mockResolvedValueOnce: (
|
|
275
|
+
mockFn2<'a, 'b, promise<'ret>>,
|
|
276
|
+
'ret,
|
|
277
|
+
) => mockFn2<'a, 'b, promise<'ret>>
|
|
278
|
+
let mockRejectedValue: (mockFn2<'a, 'b, promise<'ret>>, unknown) => mockFn2<'a, 'b, promise<'ret>>
|
|
279
|
+
let mockRejectedValueOnce: (
|
|
280
|
+
mockFn2<'a, 'b, promise<'ret>>,
|
|
281
|
+
unknown,
|
|
282
|
+
) => mockFn2<'a, 'b, promise<'ret>>
|
|
283
|
+
let toFunction: mockFn2<'a, 'b, 'ret> => ('a, 'b) => 'ret
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
// =============================================================================
|
|
287
|
+
// Mock Instance Methods - mockFn3
|
|
288
|
+
// =============================================================================
|
|
289
|
+
|
|
290
|
+
module MockFn3: {
|
|
291
|
+
let mock: mockFn3<'a, 'b, 'c, 'ret> => mockContext3<'a, 'b, 'c, 'ret>
|
|
292
|
+
let getMockName: mockFn3<'a, 'b, 'c, 'ret> => string
|
|
293
|
+
let mockName: (mockFn3<'a, 'b, 'c, 'ret>, string) => mockFn3<'a, 'b, 'c, 'ret>
|
|
294
|
+
let mockClear: mockFn3<'a, 'b, 'c, 'ret> => mockFn3<'a, 'b, 'c, 'ret>
|
|
295
|
+
let mockReset: mockFn3<'a, 'b, 'c, 'ret> => mockFn3<'a, 'b, 'c, 'ret>
|
|
296
|
+
let mockRestore: mockFn3<'a, 'b, 'c, 'ret> => unit
|
|
297
|
+
let getMockImplementation: mockFn3<'a, 'b, 'c, 'ret> => option<('a, 'b, 'c) => 'ret>
|
|
298
|
+
let mockImplementation: (
|
|
299
|
+
mockFn3<'a, 'b, 'c, 'ret>,
|
|
300
|
+
('a, 'b, 'c) => 'ret,
|
|
301
|
+
) => mockFn3<'a, 'b, 'c, 'ret>
|
|
302
|
+
let mockImplementationOnce: (
|
|
303
|
+
mockFn3<'a, 'b, 'c, 'ret>,
|
|
304
|
+
('a, 'b, 'c) => 'ret,
|
|
305
|
+
) => mockFn3<'a, 'b, 'c, 'ret>
|
|
306
|
+
let mockReturnThis: mockFn3<'a, 'b, 'c, 'ret> => mockFn3<'a, 'b, 'c, 'ret>
|
|
307
|
+
let mockReturnValue: (mockFn3<'a, 'b, 'c, 'ret>, 'ret) => mockFn3<'a, 'b, 'c, 'ret>
|
|
308
|
+
let mockReturnValueOnce: (mockFn3<'a, 'b, 'c, 'ret>, 'ret) => mockFn3<'a, 'b, 'c, 'ret>
|
|
309
|
+
let mockResolvedValue: (
|
|
310
|
+
mockFn3<'a, 'b, 'c, promise<'ret>>,
|
|
311
|
+
'ret,
|
|
312
|
+
) => mockFn3<'a, 'b, 'c, promise<'ret>>
|
|
313
|
+
let mockResolvedValueOnce: (
|
|
314
|
+
mockFn3<'a, 'b, 'c, promise<'ret>>,
|
|
315
|
+
'ret,
|
|
316
|
+
) => mockFn3<'a, 'b, 'c, promise<'ret>>
|
|
317
|
+
let mockRejectedValue: (
|
|
318
|
+
mockFn3<'a, 'b, 'c, promise<'ret>>,
|
|
319
|
+
unknown,
|
|
320
|
+
) => mockFn3<'a, 'b, 'c, promise<'ret>>
|
|
321
|
+
let mockRejectedValueOnce: (
|
|
322
|
+
mockFn3<'a, 'b, 'c, promise<'ret>>,
|
|
323
|
+
unknown,
|
|
324
|
+
) => mockFn3<'a, 'b, 'c, promise<'ret>>
|
|
325
|
+
let toFunction: mockFn3<'a, 'b, 'c, 'ret> => ('a, 'b, 'c) => 'ret
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
// =============================================================================
|
|
329
|
+
// Mock Instance Methods - mockFn4
|
|
330
|
+
// =============================================================================
|
|
331
|
+
|
|
332
|
+
module MockFn4: {
|
|
333
|
+
let mock: mockFn4<'a, 'b, 'c, 'd, 'ret> => mockContext4<'a, 'b, 'c, 'd, 'ret>
|
|
334
|
+
let getMockName: mockFn4<'a, 'b, 'c, 'd, 'ret> => string
|
|
335
|
+
let mockName: (mockFn4<'a, 'b, 'c, 'd, 'ret>, string) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
336
|
+
let mockClear: mockFn4<'a, 'b, 'c, 'd, 'ret> => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
337
|
+
let mockReset: mockFn4<'a, 'b, 'c, 'd, 'ret> => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
338
|
+
let mockRestore: mockFn4<'a, 'b, 'c, 'd, 'ret> => unit
|
|
339
|
+
let getMockImplementation: mockFn4<'a, 'b, 'c, 'd, 'ret> => option<('a, 'b, 'c, 'd) => 'ret>
|
|
340
|
+
let mockImplementation: (
|
|
341
|
+
mockFn4<'a, 'b, 'c, 'd, 'ret>,
|
|
342
|
+
('a, 'b, 'c, 'd) => 'ret,
|
|
343
|
+
) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
344
|
+
let mockImplementationOnce: (
|
|
345
|
+
mockFn4<'a, 'b, 'c, 'd, 'ret>,
|
|
346
|
+
('a, 'b, 'c, 'd) => 'ret,
|
|
347
|
+
) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
348
|
+
let mockReturnThis: mockFn4<'a, 'b, 'c, 'd, 'ret> => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
349
|
+
let mockReturnValue: (mockFn4<'a, 'b, 'c, 'd, 'ret>, 'ret) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
350
|
+
let mockReturnValueOnce: (mockFn4<'a, 'b, 'c, 'd, 'ret>, 'ret) => mockFn4<'a, 'b, 'c, 'd, 'ret>
|
|
351
|
+
let mockResolvedValue: (
|
|
352
|
+
mockFn4<'a, 'b, 'c, 'd, promise<'ret>>,
|
|
353
|
+
'ret,
|
|
354
|
+
) => mockFn4<'a, 'b, 'c, 'd, promise<'ret>>
|
|
355
|
+
let mockResolvedValueOnce: (
|
|
356
|
+
mockFn4<'a, 'b, 'c, 'd, promise<'ret>>,
|
|
357
|
+
'ret,
|
|
358
|
+
) => mockFn4<'a, 'b, 'c, 'd, promise<'ret>>
|
|
359
|
+
let mockRejectedValue: (
|
|
360
|
+
mockFn4<'a, 'b, 'c, 'd, promise<'ret>>,
|
|
361
|
+
unknown,
|
|
362
|
+
) => mockFn4<'a, 'b, 'c, 'd, promise<'ret>>
|
|
363
|
+
let mockRejectedValueOnce: (
|
|
364
|
+
mockFn4<'a, 'b, 'c, 'd, promise<'ret>>,
|
|
365
|
+
unknown,
|
|
366
|
+
) => mockFn4<'a, 'b, 'c, 'd, promise<'ret>>
|
|
367
|
+
let toFunction: mockFn4<'a, 'b, 'c, 'd, 'ret> => ('a, 'b, 'c, 'd) => 'ret
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
// =============================================================================
|
|
371
|
+
// Mock Instance Methods - mockFn5
|
|
372
|
+
// =============================================================================
|
|
373
|
+
|
|
374
|
+
module MockFn5: {
|
|
375
|
+
let mock: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => mockContext5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
376
|
+
let getMockName: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => string
|
|
377
|
+
let mockName: (mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>, string) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
378
|
+
let mockClear: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
379
|
+
let mockReset: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
380
|
+
let mockRestore: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => unit
|
|
381
|
+
let getMockImplementation: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => option<
|
|
382
|
+
('a, 'b, 'c, 'd, 'e) => 'ret,
|
|
383
|
+
>
|
|
384
|
+
let mockImplementation: (
|
|
385
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>,
|
|
386
|
+
('a, 'b, 'c, 'd, 'e) => 'ret,
|
|
387
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
388
|
+
let mockImplementationOnce: (
|
|
389
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>,
|
|
390
|
+
('a, 'b, 'c, 'd, 'e) => 'ret,
|
|
391
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
392
|
+
let mockReturnThis: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
393
|
+
let mockReturnValue: (
|
|
394
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>,
|
|
395
|
+
'ret,
|
|
396
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
397
|
+
let mockReturnValueOnce: (
|
|
398
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>,
|
|
399
|
+
'ret,
|
|
400
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, 'ret>
|
|
401
|
+
let mockResolvedValue: (
|
|
402
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>,
|
|
403
|
+
'ret,
|
|
404
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>
|
|
405
|
+
let mockResolvedValueOnce: (
|
|
406
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>,
|
|
407
|
+
'ret,
|
|
408
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>
|
|
409
|
+
let mockRejectedValue: (
|
|
410
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>,
|
|
411
|
+
unknown,
|
|
412
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>
|
|
413
|
+
let mockRejectedValueOnce: (
|
|
414
|
+
mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>,
|
|
415
|
+
unknown,
|
|
416
|
+
) => mockFn5<'a, 'b, 'c, 'd, 'e, promise<'ret>>
|
|
417
|
+
let toFunction: mockFn5<'a, 'b, 'c, 'd, 'e, 'ret> => ('a, 'b, 'c, 'd, 'e) => 'ret
|
|
418
|
+
}
|
|
419
|
+
|
|
420
|
+
// =============================================================================
|
|
421
|
+
// vi.clearAllMocks, vi.resetAllMocks, vi.restoreAllMocks
|
|
422
|
+
// =============================================================================
|
|
423
|
+
|
|
424
|
+
let clearAllMocks: unit => Vitest.Vi.t
|
|
425
|
+
let resetAllMocks: unit => Vitest.Vi.t
|
|
426
|
+
let restoreAllMocks: unit => Vitest.Vi.t
|
|
427
|
+
|
|
428
|
+
// =============================================================================
|
|
429
|
+
// vi.isMockFunction
|
|
430
|
+
// =============================================================================
|
|
431
|
+
|
|
432
|
+
let isMockFunction: 'a => bool
|