cypress 5.2.0 → 5.6.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/index.js +6 -6
- package/lib/cli.js +119 -107
- package/lib/cypress.js +21 -21
- package/lib/errors.js +233 -276
- package/lib/exec/info.js +29 -32
- package/lib/exec/open.js +7 -8
- package/lib/exec/run.js +20 -20
- package/lib/exec/spawn.js +53 -49
- package/lib/exec/versions.js +18 -17
- package/lib/exec/xvfb.js +43 -37
- package/lib/fs.js +1 -1
- package/lib/logger.js +24 -50
- package/lib/tasks/cache.js +96 -36
- package/lib/tasks/download.js +113 -133
- package/lib/tasks/get-folder-size.js +41 -0
- package/lib/tasks/install.js +165 -249
- package/lib/tasks/state.js +54 -56
- package/lib/tasks/unzip.js +72 -69
- package/lib/tasks/verify.js +112 -147
- package/lib/util.js +172 -176
- package/package.json +4 -4
- package/types/cypress-npm-api.d.ts +13 -5
- package/types/cypress.d.ts +15 -15
- package/types/mocha/index.d.ts +123 -308
- package/types/net-stubbing.ts +132 -21
package/types/net-stubbing.ts
CHANGED
@@ -1,13 +1,80 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
// Copied from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/methods/index.d.ts
|
2
|
+
type Method =
|
3
|
+
| 'ACL'
|
4
|
+
| 'BIND'
|
5
|
+
| 'CHECKOUT'
|
6
|
+
| 'CONNECT'
|
7
|
+
| 'COPY'
|
8
|
+
| 'DELETE'
|
9
|
+
| 'GET'
|
10
|
+
| 'HEAD'
|
11
|
+
| 'LINK'
|
12
|
+
| 'LOCK'
|
13
|
+
| 'M-SEARCH'
|
14
|
+
| 'MERGE'
|
15
|
+
| 'MKACTIVITY'
|
16
|
+
| 'MKCALENDAR'
|
17
|
+
| 'MKCOL'
|
18
|
+
| 'MOVE'
|
19
|
+
| 'NOTIFY'
|
20
|
+
| 'OPTIONS'
|
21
|
+
| 'PATCH'
|
22
|
+
| 'POST'
|
23
|
+
| 'PROPFIND'
|
24
|
+
| 'PROPPATCH'
|
25
|
+
| 'PURGE'
|
26
|
+
| 'PUT'
|
27
|
+
| 'REBIND'
|
28
|
+
| 'REPORT'
|
29
|
+
| 'SEARCH'
|
30
|
+
| 'SOURCE'
|
31
|
+
| 'SUBSCRIBE'
|
32
|
+
| 'TRACE'
|
33
|
+
| 'UNBIND'
|
34
|
+
| 'UNLINK'
|
35
|
+
| 'UNLOCK'
|
36
|
+
| 'UNSUBSCRIBE'
|
37
|
+
| 'acl'
|
38
|
+
| 'bind'
|
39
|
+
| 'checkout'
|
40
|
+
| 'connect'
|
41
|
+
| 'copy'
|
42
|
+
| 'delete'
|
43
|
+
| 'get'
|
44
|
+
| 'head'
|
45
|
+
| 'link'
|
46
|
+
| 'lock'
|
47
|
+
| 'm-search'
|
48
|
+
| 'merge'
|
49
|
+
| 'mkactivity'
|
50
|
+
| 'mkcalendar'
|
51
|
+
| 'mkcol'
|
52
|
+
| 'move'
|
53
|
+
| 'notify'
|
54
|
+
| 'options'
|
55
|
+
| 'patch'
|
56
|
+
| 'post'
|
57
|
+
| 'propfind'
|
58
|
+
| 'proppatch'
|
59
|
+
| 'purge'
|
60
|
+
| 'put'
|
61
|
+
| 'rebind'
|
62
|
+
| 'report'
|
63
|
+
| 'search'
|
64
|
+
| 'source'
|
65
|
+
| 'subscribe'
|
66
|
+
| 'trace'
|
67
|
+
| 'unbind'
|
68
|
+
| 'unlink'
|
69
|
+
| 'unlock'
|
70
|
+
| 'unsubscribe'
|
71
|
+
|
4
72
|
export namespace CyHttpMessages {
|
5
73
|
interface BaseMessage {
|
6
|
-
// as much stuff from `incomingmessage` as makes sense to serialize and send
|
7
74
|
body?: any
|
8
75
|
headers: { [key: string]: string }
|
9
76
|
url: string
|
10
|
-
method?:
|
77
|
+
method?: Method
|
11
78
|
httpVersion?: string
|
12
79
|
}
|
13
80
|
|
@@ -44,14 +111,39 @@ export namespace CyHttpMessages {
|
|
44
111
|
* not follow redirects before yielding the response (the 3xx redirect is yielded)
|
45
112
|
*/
|
46
113
|
followRedirect?: boolean
|
114
|
+
/**
|
115
|
+
* If set, `cy.wait` can be used to await the request/response cycle to complete for this
|
116
|
+
* request via `cy.wait('@alias')`.
|
117
|
+
*/
|
118
|
+
alias?: string
|
47
119
|
}
|
48
120
|
|
49
121
|
export interface IncomingHttpRequest extends IncomingRequest {
|
122
|
+
/**
|
123
|
+
* Destroy the request and respond with a network error.
|
124
|
+
*/
|
50
125
|
destroy(): void
|
126
|
+
/**
|
127
|
+
* Control the response to this request.
|
128
|
+
* If a function is passed, the request will be sent outgoing, and the function will be called
|
129
|
+
* with the response from the upstream server.
|
130
|
+
* If a `StaticResponse` is passed, it will be used as the response, and no request will be made
|
131
|
+
* to the upstream server.
|
132
|
+
*/
|
51
133
|
reply(interceptor?: StaticResponse | HttpResponseInterceptor): void
|
134
|
+
/**
|
135
|
+
* Shortcut to reply to the request with a body and optional headers.
|
136
|
+
*/
|
52
137
|
reply(body: string | object, headers?: { [key: string]: string }): void
|
138
|
+
/**
|
139
|
+
* Shortcut to reply to the request with an HTTP status code and optional body and headers.
|
140
|
+
*/
|
53
141
|
reply(status: number, body?: string | object, headers?: { [key: string]: string }): void
|
54
|
-
|
142
|
+
/**
|
143
|
+
* Respond to this request with a redirect to a new `location`.
|
144
|
+
* @param statusCode HTTP status code to redirect with. Default: 302
|
145
|
+
*/
|
146
|
+
redirect(location: string, statusCode?: number): void
|
55
147
|
}
|
56
148
|
}
|
57
149
|
|
@@ -64,9 +156,19 @@ export interface DictMatcher<T> {
|
|
64
156
|
*/
|
65
157
|
export type GlobPattern = string
|
66
158
|
|
159
|
+
/**
|
160
|
+
* Interceptor for an HTTP request. If a Promise is returned, it will be awaited before passing the
|
161
|
+
* request to the next handler (if there is one), otherwise the request will be passed to the next
|
162
|
+
* handler synchronously.
|
163
|
+
*/
|
67
164
|
export type HttpRequestInterceptor = (req: CyHttpMessages.IncomingHttpRequest) => void | Promise<void>
|
68
165
|
|
69
|
-
|
166
|
+
/**
|
167
|
+
* Interceptor for an HTTP response. If a Promise is returned, it will be awaited before passing the
|
168
|
+
* request to the next handler (if there is one), otherwise the request will be passed to the next
|
169
|
+
* handler synchronously.
|
170
|
+
*/
|
171
|
+
export type HttpResponseInterceptor = (res: CyHttpMessages.IncomingHttpResponse) => void | Promise<void>
|
70
172
|
|
71
173
|
/**
|
72
174
|
* Matches a single number or any of an array of acceptable numbers.
|
@@ -130,23 +232,25 @@ export type RouteMatcherOptions = RouteMatcherOptionsGeneric<StringMatcher>
|
|
130
232
|
|
131
233
|
export interface RouteMatcherOptionsGeneric<S> extends RouteMatcherCompatOptions {
|
132
234
|
/**
|
133
|
-
* Match HTTP
|
235
|
+
* Match against the username and password used in HTTP Basic authentication.
|
134
236
|
*/
|
135
237
|
auth?: { username: S, password: S }
|
136
238
|
/**
|
137
|
-
* Match
|
239
|
+
* Match against HTTP headers on the request.
|
138
240
|
*/
|
139
241
|
headers?: DictMatcher<S>
|
140
242
|
/**
|
141
|
-
* Match
|
243
|
+
* Match against the requested HTTP hostname.
|
142
244
|
*/
|
143
245
|
hostname?: S
|
144
246
|
/**
|
145
|
-
*
|
247
|
+
* If 'true', only HTTPS requests will be matched.
|
248
|
+
* If 'false', only HTTP requests will be matched.
|
146
249
|
*/
|
147
250
|
https?: boolean
|
148
251
|
/**
|
149
|
-
*
|
252
|
+
* Match against the request's HTTP method.
|
253
|
+
* @default '*'
|
150
254
|
*/
|
151
255
|
method?: S
|
152
256
|
/**
|
@@ -158,7 +262,8 @@ export interface RouteMatcherOptionsGeneric<S> extends RouteMatcherCompatOptions
|
|
158
262
|
*/
|
159
263
|
pathname?: S
|
160
264
|
/**
|
161
|
-
* Match based on requested port
|
265
|
+
* Match based on requested port, or pass an array of ports
|
266
|
+
* to match against any in that array.
|
162
267
|
*/
|
163
268
|
port?: NumberMatcher
|
164
269
|
/**
|
@@ -166,7 +271,9 @@ export interface RouteMatcherOptionsGeneric<S> extends RouteMatcherCompatOptions
|
|
166
271
|
*/
|
167
272
|
query?: DictMatcher<S>
|
168
273
|
/**
|
169
|
-
* Match
|
274
|
+
* Match against the full request URL.
|
275
|
+
* If a string is passed, it will be used as a substring match,
|
276
|
+
* not an equality match.
|
170
277
|
*/
|
171
278
|
url?: S
|
172
279
|
}
|
@@ -180,34 +287,38 @@ export type RouteHandler = string | StaticResponse | RouteHandlerController | ob
|
|
180
287
|
*/
|
181
288
|
export type StaticResponse = GenericStaticResponse<string, string | object> & {
|
182
289
|
/**
|
183
|
-
|
184
|
-
|
290
|
+
* Milliseconds to delay before the response is sent.
|
291
|
+
*/
|
185
292
|
delayMs?: number
|
186
293
|
}
|
187
294
|
|
188
295
|
export interface GenericStaticResponse<Fixture, Body> {
|
189
296
|
/**
|
190
|
-
*
|
297
|
+
* Serve a fixture as the response body.
|
191
298
|
*/
|
192
299
|
fixture?: Fixture
|
193
300
|
/**
|
194
|
-
*
|
301
|
+
* Serve a static string/JSON object as the response body.
|
195
302
|
*/
|
196
303
|
body?: Body
|
197
304
|
/**
|
305
|
+
* HTTP headers to accompany the response.
|
198
306
|
* @default {}
|
199
307
|
*/
|
200
308
|
headers?: { [key: string]: string }
|
201
309
|
/**
|
310
|
+
* The HTTP status code to send.
|
202
311
|
* @default 200
|
203
312
|
*/
|
204
313
|
statusCode?: number
|
205
314
|
/**
|
206
|
-
* If
|
315
|
+
* If 'forceNetworkError' is truthy, Cypress will destroy the browser connection
|
316
|
+
* and send no response. Useful for simulating a server that is not reachable.
|
317
|
+
* Must not be set in combination with other options.
|
207
318
|
*/
|
208
319
|
forceNetworkError?: boolean
|
209
320
|
/**
|
210
|
-
*
|
321
|
+
* Kilobits per second to send 'body'.
|
211
322
|
*/
|
212
323
|
throttleKbps?: number
|
213
324
|
}
|
@@ -251,7 +362,7 @@ declare global {
|
|
251
362
|
* @example
|
252
363
|
* cy.route2('GET', 'http://foo.com/fruits', ['apple', 'banana', 'cherry'])
|
253
364
|
*/
|
254
|
-
route2(method:
|
365
|
+
route2(method: Method, url: RouteMatcher, response?: RouteHandler): Chainable<null>
|
255
366
|
}
|
256
367
|
}
|
257
368
|
}
|