cypress 5.2.0 → 5.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
}
|