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
@@ -8,6 +8,7 @@
|
|
8
8
|
|
9
9
|
declare namespace CypressCommandLine {
|
10
10
|
type HookName = 'before' | 'beforeEach' | 'afterEach' | 'after'
|
11
|
+
|
11
12
|
interface TestError {
|
12
13
|
name: string
|
13
14
|
message: string
|
@@ -225,7 +226,7 @@ declare namespace CypressCommandLine {
|
|
225
226
|
startedAt: dateTimeISO
|
226
227
|
endedAt: dateTimeISO
|
227
228
|
duration: ms
|
228
|
-
}
|
229
|
+
}
|
229
230
|
/**
|
230
231
|
* Reporter name like "spec"
|
231
232
|
*/
|
@@ -255,7 +256,7 @@ declare namespace CypressCommandLine {
|
|
255
256
|
* resolved filename of the spec
|
256
257
|
*/
|
257
258
|
absolute: string
|
258
|
-
}
|
259
|
+
}
|
259
260
|
shouldUploadVideo: boolean
|
260
261
|
}
|
261
262
|
|
@@ -264,6 +265,7 @@ declare namespace CypressCommandLine {
|
|
264
265
|
* @see https://on.cypress.io/module-api
|
265
266
|
*/
|
266
267
|
interface CypressRunResult {
|
268
|
+
status: 'finished'
|
267
269
|
startedTestsAt: dateTimeISO
|
268
270
|
endedTestsAt: dateTimeISO
|
269
271
|
totalDuration: ms
|
@@ -294,7 +296,8 @@ declare namespace CypressCommandLine {
|
|
294
296
|
* @example
|
295
297
|
```
|
296
298
|
const result = await cypress.run()
|
297
|
-
if (result.
|
299
|
+
if (result.status === 'failed') {
|
300
|
+
console.error('failures %d', result.failures)
|
298
301
|
console.error(result.message)
|
299
302
|
process.exit(result.failures)
|
300
303
|
}
|
@@ -302,6 +305,7 @@ declare namespace CypressCommandLine {
|
|
302
305
|
*
|
303
306
|
**/
|
304
307
|
interface CypressFailedRunResult {
|
308
|
+
status: 'failed'
|
305
309
|
failures: number
|
306
310
|
message: string
|
307
311
|
}
|
@@ -347,11 +351,15 @@ declare module 'cypress' {
|
|
347
351
|
cypress.run({
|
348
352
|
spec: 'cypress/integration/admin*-spec.js'
|
349
353
|
}).then(results => {
|
350
|
-
|
354
|
+
if (results.status === 'failed') {
|
355
|
+
// Cypress could not run
|
356
|
+
} else {
|
357
|
+
// inspect results object
|
358
|
+
}
|
351
359
|
})
|
352
360
|
```
|
353
361
|
*/
|
354
|
-
run(options?: Partial<CypressCommandLine.CypressRunOptions>): Promise<CypressCommandLine.CypressRunResult | CypressCommandLine.CypressFailedRunResult
|
362
|
+
run(options?: Partial<CypressCommandLine.CypressRunOptions>): Promise<CypressCommandLine.CypressRunResult | CypressCommandLine.CypressFailedRunResult>
|
355
363
|
/**
|
356
364
|
* Opens Cypress GUI. Resolves with void when the
|
357
365
|
* GUI is closed.
|
package/types/cypress.d.ts
CHANGED
@@ -1107,7 +1107,7 @@ declare namespace Cypress {
|
|
1107
1107
|
...args: any[]
|
1108
1108
|
): Chainable<R>
|
1109
1109
|
invoke<K extends keyof Subject, F extends ((...args: any[]) => any) & Subject[K], R = ReturnType<F>>(
|
1110
|
-
options: Loggable
|
1110
|
+
options: Partial<Loggable & Timeoutable>,
|
1111
1111
|
functionName: K,
|
1112
1112
|
...args: any[]
|
1113
1113
|
): Chainable<R>
|
@@ -1117,7 +1117,7 @@ declare namespace Cypress {
|
|
1117
1117
|
* @see https://on.cypress.io/invoke
|
1118
1118
|
*/
|
1119
1119
|
invoke<T extends (...args: any[]) => any, Subject extends T[]>(index: number): Chainable<ReturnType<T>>
|
1120
|
-
invoke<T extends (...args: any[]) => any, Subject extends T[]>(options: Loggable
|
1120
|
+
invoke<T extends (...args: any[]) => any, Subject extends T[]>(options: Partial<Loggable & Timeoutable>, index: number): Chainable<ReturnType<T>>
|
1121
1121
|
|
1122
1122
|
/**
|
1123
1123
|
* Invoke a function on the previously yielded subject by a property path.
|
@@ -1138,8 +1138,8 @@ declare namespace Cypress {
|
|
1138
1138
|
* // Drill into nested properties by using dot notation
|
1139
1139
|
* cy.wrap({foo: {bar: {baz: 1}}}).its('foo.bar.baz')
|
1140
1140
|
*/
|
1141
|
-
its<K extends keyof Subject>(propertyName: K, options?: Loggable): Chainable<Subject[K]>
|
1142
|
-
its(propertyPath: string, options?: Loggable): Chainable
|
1141
|
+
its<K extends keyof Subject>(propertyName: K, options?: Partial<Loggable & Timeoutable>): Chainable<Subject[K]>
|
1142
|
+
its(propertyPath: string, options?: Partial<Loggable & Timeoutable>): Chainable
|
1143
1143
|
|
1144
1144
|
/**
|
1145
1145
|
* Get a value by index from an array yielded from the previous command.
|
@@ -1147,7 +1147,7 @@ declare namespace Cypress {
|
|
1147
1147
|
* @example
|
1148
1148
|
* cy.wrap(['a', 'b']).its(1).should('equal', 'b')
|
1149
1149
|
*/
|
1150
|
-
its<T, Subject extends T[]>(index: number, options?: Loggable): Chainable<T>
|
1150
|
+
its<T, Subject extends T[]>(index: number, options?: Partial<Loggable & Timeoutable>): Chainable<T>
|
1151
1151
|
|
1152
1152
|
/**
|
1153
1153
|
* Get the last DOM element within a set of DOM elements.
|
@@ -1766,7 +1766,7 @@ declare namespace Cypress {
|
|
1766
1766
|
*
|
1767
1767
|
* @see https://on.cypress.io/task
|
1768
1768
|
*/
|
1769
|
-
task(event: string, arg?: any, options?: Partial<Loggable & Timeoutable>): Chainable<
|
1769
|
+
task<S = unknown>(event: string, arg?: any, options?: Partial<Loggable & Timeoutable>): Chainable<S>
|
1770
1770
|
|
1771
1771
|
/**
|
1772
1772
|
* Enables you to work with the subject yielded from the previous command.
|
@@ -2564,7 +2564,7 @@ declare namespace Cypress {
|
|
2564
2564
|
*/
|
2565
2565
|
waitForAnimations: boolean
|
2566
2566
|
/**
|
2567
|
-
* Firefox
|
2567
|
+
* Firefox version 79 and below only: The number of tests that will run between forced garbage collections.
|
2568
2568
|
* If a number is supplied, it will apply to `run` mode and `open` mode.
|
2569
2569
|
* Set the interval to `null` or 0 to disable forced garbage collections.
|
2570
2570
|
* @default { runMode: 1, openMode: null }
|
@@ -2587,7 +2587,7 @@ declare namespace Cypress {
|
|
2587
2587
|
* To enable test retries only in runMode, set e.g. `{ openMode: null, runMode: 2 }`
|
2588
2588
|
* @default null
|
2589
2589
|
*/
|
2590
|
-
retries: Nullable<number | {runMode
|
2590
|
+
retries: Nullable<number | {runMode?: Nullable<number>, openMode?: Nullable<number>}>
|
2591
2591
|
/**
|
2592
2592
|
* Enables including elements within the shadow DOM when using querying
|
2593
2593
|
* commands (e.g. cy.get(), cy.find()). Can be set globally in cypress.json,
|
@@ -5042,7 +5042,7 @@ declare namespace Cypress {
|
|
5042
5042
|
})
|
5043
5043
|
```
|
5044
5044
|
*/
|
5045
|
-
(action: 'uncaught:exception', fn: (error: Error, runnable: Mocha.
|
5045
|
+
(action: 'uncaught:exception', fn: (error: Error, runnable: Mocha.Runnable) => false | void): void
|
5046
5046
|
/**
|
5047
5047
|
* Fires when your app calls the global `window.confirm()` method.
|
5048
5048
|
* Cypress will auto accept confirmations. Return `false` from this event and the confirmation will be canceled.
|
@@ -5102,7 +5102,7 @@ declare namespace Cypress {
|
|
5102
5102
|
* Fires when the test has failed. It is technically possible to prevent the test from actually failing by binding to this event and invoking an async `done` callback. However this is **strongly discouraged**. Tests should never legitimately fail. This event exists because it's extremely useful for debugging purposes.
|
5103
5103
|
* @see https://on.cypress.io/catalog-of-events#App-Events
|
5104
5104
|
*/
|
5105
|
-
(action: 'fail', fn: (error: Error, mocha: Mocha.
|
5105
|
+
(action: 'fail', fn: (error: Error, mocha: Mocha.Runnable) => void): void
|
5106
5106
|
/**
|
5107
5107
|
* Fires whenever the viewport changes via a `cy.viewport()` or naturally when Cypress resets the viewport to the default between tests. Useful for debugging purposes.
|
5108
5108
|
* @see https://on.cypress.io/catalog-of-events#App-Events
|
@@ -5147,16 +5147,16 @@ declare namespace Cypress {
|
|
5147
5147
|
* Fires before the test and all **before** and **beforeEach** hooks run.
|
5148
5148
|
* @see https://on.cypress.io/catalog-of-events#App-Events
|
5149
5149
|
*/
|
5150
|
-
(action: 'test:before:run', fn: (attributes: ObjectLike, test: Mocha.
|
5150
|
+
(action: 'test:before:run', fn: (attributes: ObjectLike, test: Mocha.Test) => void): void
|
5151
5151
|
/**
|
5152
5152
|
* Fires before the test and all **before** and **beforeEach** hooks run. If a `Promise` is returned, it will be awaited before proceeding.
|
5153
5153
|
*/
|
5154
|
-
(action: 'test:before:run:async', fn: (attributes: ObjectLike, test: Mocha.
|
5154
|
+
(action: 'test:before:run:async', fn: (attributes: ObjectLike, test: Mocha.Test) => void | Promise<any>): void
|
5155
5155
|
/**
|
5156
5156
|
* Fires after the test and all **afterEach** and **after** hooks run.
|
5157
5157
|
* @see https://on.cypress.io/catalog-of-events#App-Events
|
5158
5158
|
*/
|
5159
|
-
(action: 'test:after:run', fn: (attributes: ObjectLike, test: Mocha.
|
5159
|
+
(action: 'test:after:run', fn: (attributes: ObjectLike, test: Mocha.Test) => void): void
|
5160
5160
|
}
|
5161
5161
|
|
5162
5162
|
// $CommandQueue from `command_queue.coffee` - a lot to type. Might be more useful if it was written in TS
|
@@ -5237,7 +5237,7 @@ declare namespace Cypress {
|
|
5237
5237
|
snapshot(name?: string, options?: { at?: number, next: string }): Log
|
5238
5238
|
}
|
5239
5239
|
|
5240
|
-
interface LogConfig {
|
5240
|
+
interface LogConfig extends Timeoutable {
|
5241
5241
|
/** The JQuery element for the command. This will highlight the command in the main window when debugging */
|
5242
5242
|
$el: JQuery
|
5243
5243
|
/** Allows the name of the command to be overwritten */
|
@@ -5295,7 +5295,7 @@ declare namespace Cypress {
|
|
5295
5295
|
|
5296
5296
|
type Encodings = 'ascii' | 'base64' | 'binary' | 'hex' | 'latin1' | 'utf8' | 'utf-8' | 'ucs2' | 'ucs-2' | 'utf16le' | 'utf-16le'
|
5297
5297
|
type PositionType = 'topLeft' | 'top' | 'topRight' | 'left' | 'center' | 'right' | 'bottomLeft' | 'bottom' | 'bottomRight'
|
5298
|
-
type ViewportPreset = 'macbook-15' | 'macbook-13' | 'macbook-11' | 'ipad-2' | 'ipad-mini' | 'iphone-xr' | 'iphone-x' | 'iphone-6+' | 'iphone-6' | 'iphone-5' | 'iphone-4' | 'iphone-3' | 'samsung-s10' | 'samsung-note9'
|
5298
|
+
type ViewportPreset = 'macbook-16' | 'macbook-15' | 'macbook-13' | 'macbook-11' | 'ipad-2' | 'ipad-mini' | 'iphone-xr' | 'iphone-x' | 'iphone-6+' | 'iphone-se2' | 'iphone-8' | 'iphone-7' | 'iphone-6' | 'iphone-5' | 'iphone-4' | 'iphone-3' | 'samsung-s10' | 'samsung-note9'
|
5299
5299
|
interface Offset {
|
5300
5300
|
top: number
|
5301
5301
|
left: number
|