cypress 8.4.0 → 8.7.0
Sign up to get free protection for your applications and to get access to all the features.
- package/lib/cypress.js +18 -0
- package/lib/tasks/download.js +6 -4
- package/package.json +2 -1
- package/types/cy-bluebird.d.ts +3 -2
- package/types/cypress-npm-api.d.ts +19 -0
- package/types/cypress.d.ts +101 -96
package/lib/cypress.js
CHANGED
@@ -70,6 +70,24 @@ const cypressModuleApi = {
|
|
70
70
|
return cli.parseRunCommand(args);
|
71
71
|
}
|
72
72
|
|
73
|
+
},
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Provides automatic code completion for configuration in many popular code editors.
|
77
|
+
* While it's not strictly necessary for Cypress to parse your configuration, we
|
78
|
+
* recommend wrapping your config object with `defineConfig()`
|
79
|
+
* @example
|
80
|
+
* module.exports = defineConfig({
|
81
|
+
* viewportWith: 400
|
82
|
+
* })
|
83
|
+
*
|
84
|
+
* @see ../types/cypress-npm-api.d.ts
|
85
|
+
* @param {Cypress.ConfigOptions} config
|
86
|
+
* @returns {Cypress.ConfigOptions} the configuration passed in parameter
|
87
|
+
*/
|
88
|
+
defineConfig(config) {
|
89
|
+
return config;
|
73
90
|
}
|
91
|
+
|
74
92
|
};
|
75
93
|
module.exports = cypressModuleApi;
|
package/lib/tasks/download.js
CHANGED
@@ -24,6 +24,8 @@ const {
|
|
24
24
|
stripIndent
|
25
25
|
} = require('common-tags');
|
26
26
|
|
27
|
+
const getProxyForUrl = require('proxy-from-env').getProxyForUrl;
|
28
|
+
|
27
29
|
const {
|
28
30
|
throwFormErrorText,
|
29
31
|
errors
|
@@ -35,8 +37,8 @@ const util = require('../util');
|
|
35
37
|
|
36
38
|
const defaultBaseUrl = 'https://download.cypress.io/';
|
37
39
|
|
38
|
-
const
|
39
|
-
return
|
40
|
+
const getProxyForUrlWithNpmConfig = url => {
|
41
|
+
return getProxyForUrl(url) || process.env.npm_config_https_proxy || process.env.npm_config_proxy || null;
|
40
42
|
};
|
41
43
|
|
42
44
|
const getRealOsArch = () => {
|
@@ -198,7 +200,7 @@ const downloadFromUrl = ({
|
|
198
200
|
ca
|
199
201
|
}) => {
|
200
202
|
return new Promise((resolve, reject) => {
|
201
|
-
const proxy =
|
203
|
+
const proxy = getProxyForUrlWithNpmConfig(url);
|
202
204
|
debug('Downloading package', {
|
203
205
|
url,
|
204
206
|
proxy,
|
@@ -338,6 +340,6 @@ const start = opts => {
|
|
338
340
|
module.exports = {
|
339
341
|
start,
|
340
342
|
getUrl,
|
341
|
-
|
343
|
+
getProxyForUrlWithNpmConfig,
|
342
344
|
getCA
|
343
345
|
};
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "cypress",
|
3
|
-
"version": "8.
|
3
|
+
"version": "8.7.0",
|
4
4
|
"main": "index.js",
|
5
5
|
"scripts": {
|
6
6
|
"postinstall": "node index.js --exec install",
|
@@ -41,6 +41,7 @@
|
|
41
41
|
"minimist": "^1.2.5",
|
42
42
|
"ospath": "^1.2.2",
|
43
43
|
"pretty-bytes": "^5.6.0",
|
44
|
+
"proxy-from-env": "1.0.0",
|
44
45
|
"ramda": "~0.27.1",
|
45
46
|
"request-progress": "^3.0.0",
|
46
47
|
"supports-color": "^8.1.1",
|
package/types/cy-bluebird.d.ts
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
// Shim definition to export a namespace. Cypress is actually a global module
|
2
2
|
// so import/export isn't allowed there. We import here and define a global module
|
3
3
|
// so that Cypress can get and use the Blob type
|
4
|
-
import
|
4
|
+
import ImportedBluebird = require('./bluebird')
|
5
5
|
|
6
6
|
export = Bluebird
|
7
7
|
export as namespace Bluebird
|
8
8
|
|
9
9
|
declare namespace Bluebird {
|
10
|
-
type BluebirdStatic = typeof
|
10
|
+
type BluebirdStatic = typeof ImportedBluebird
|
11
|
+
interface Promise<T> extends ImportedBluebird<T> {}
|
11
12
|
}
|
@@ -91,6 +91,10 @@ declare namespace CypressCommandLine {
|
|
91
91
|
* Specify mocha reporter options
|
92
92
|
*/
|
93
93
|
reporterOptions: any
|
94
|
+
/**
|
95
|
+
* Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold.
|
96
|
+
*/
|
97
|
+
slowTestThreshold: number
|
94
98
|
/**
|
95
99
|
* Specify the specs to run
|
96
100
|
*/
|
@@ -377,6 +381,21 @@ declare module 'cypress' {
|
|
377
381
|
* Cypress does
|
378
382
|
*/
|
379
383
|
cli: CypressCommandLine.CypressCliParser
|
384
|
+
|
385
|
+
/**
|
386
|
+
* Provides automatic code completion for configuration in many popular code editors.
|
387
|
+
* While it's not strictly necessary for Cypress to parse your configuration, we
|
388
|
+
* recommend wrapping your config object with `defineConfig()`
|
389
|
+
* @example
|
390
|
+
* module.exports = defineConfig({
|
391
|
+
* viewportWith: 400
|
392
|
+
* })
|
393
|
+
*
|
394
|
+
* @see ../types/cypress-npm-api.d.ts
|
395
|
+
* @param {Cypress.ConfigOptions} config
|
396
|
+
* @returns {Cypress.ConfigOptions} the configuration passed in parameter
|
397
|
+
*/
|
398
|
+
defineConfig(config: Cypress.ConfigOptions): Cypress.ConfigOptions
|
380
399
|
}
|
381
400
|
|
382
401
|
// export Cypress NPM module interface
|
package/types/cypress.d.ts
CHANGED
@@ -168,7 +168,12 @@ declare namespace Cypress {
|
|
168
168
|
/**
|
169
169
|
* The interface for user-defined properties in Window object under test.
|
170
170
|
*/
|
171
|
-
interface ApplicationWindow {} // tslint:disable-line
|
171
|
+
interface ApplicationWindow { } // tslint:disable-line
|
172
|
+
|
173
|
+
/**
|
174
|
+
* The configuration for Cypress.
|
175
|
+
*/
|
176
|
+
type Config = ResolvedConfigOptions & RuntimeConfigOptions
|
172
177
|
|
173
178
|
/**
|
174
179
|
* Several libraries are bundled with Cypress by default.
|
@@ -297,7 +302,7 @@ declare namespace Cypress {
|
|
297
302
|
/**
|
298
303
|
* Fire automation:request event for internal use.
|
299
304
|
*/
|
300
|
-
automation(eventName: string, ...args: any[]): Promise<any>
|
305
|
+
automation(eventName: string, ...args: any[]): Bluebird.Promise<any>
|
301
306
|
|
302
307
|
/**
|
303
308
|
* Promise wrapper for certain internal tasks.
|
@@ -313,7 +318,7 @@ declare namespace Cypress {
|
|
313
318
|
// {defaultCommandTimeout: 10000, pageLoadTimeout: 30000, ...}
|
314
319
|
```
|
315
320
|
*/
|
316
|
-
config():
|
321
|
+
config(): Config
|
317
322
|
/**
|
318
323
|
* Returns one configuration value.
|
319
324
|
* @see https://on.cypress.io/config
|
@@ -521,7 +526,7 @@ declare namespace Cypress {
|
|
521
526
|
/**
|
522
527
|
* @see https://on.cypress.io/keyboard-api
|
523
528
|
*/
|
524
|
-
|
529
|
+
Keyboard: {
|
525
530
|
defaults(options: Partial<KeyboardDefaultsOptions>): void
|
526
531
|
}
|
527
532
|
|
@@ -579,7 +584,7 @@ declare namespace Cypress {
|
|
579
584
|
}
|
580
585
|
|
581
586
|
interface SessionOptions {
|
582
|
-
validate?: () => false|void
|
587
|
+
validate?: () => false | void
|
583
588
|
}
|
584
589
|
|
585
590
|
type CanReturnChainable = void | Chainable | Promise<unknown>
|
@@ -717,36 +722,36 @@ declare namespace Cypress {
|
|
717
722
|
```
|
718
723
|
*/
|
719
724
|
clearLocalStorage(re: RegExp): Chainable<Storage>
|
720
|
-
|
721
|
-
|
722
|
-
|
723
|
-
|
724
|
-
|
725
|
-
|
726
|
-
|
727
|
-
|
728
|
-
|
729
|
-
|
730
|
-
|
731
|
-
|
732
|
-
|
733
|
-
|
725
|
+
/**
|
726
|
+
* Clear data in local storage.
|
727
|
+
* Cypress automatically runs this command before each test to prevent state from being
|
728
|
+
* shared across tests. You shouldn’t need to use this command unless you’re using it
|
729
|
+
* to clear localStorage inside a single test. Yields `localStorage` object.
|
730
|
+
*
|
731
|
+
* @see https://on.cypress.io/clearlocalstorage
|
732
|
+
* @param {options} [object] - options object
|
733
|
+
* @example
|
734
|
+
```
|
735
|
+
// Removes all local storage items, without logging
|
736
|
+
cy.clearLocalStorage({ log: false })
|
737
|
+
```
|
738
|
+
*/
|
734
739
|
clearLocalStorage(options: Partial<Loggable>): Chainable<Storage>
|
735
|
-
|
736
|
-
|
737
|
-
|
738
|
-
|
739
|
-
|
740
|
-
|
741
|
-
|
742
|
-
|
743
|
-
|
744
|
-
|
745
|
-
|
746
|
-
|
747
|
-
|
748
|
-
|
749
|
-
|
740
|
+
/**
|
741
|
+
* Clear data in local storage.
|
742
|
+
* Cypress automatically runs this command before each test to prevent state from being
|
743
|
+
* shared across tests. You shouldn’t need to use this command unless you’re using it
|
744
|
+
* to clear localStorage inside a single test. Yields `localStorage` object.
|
745
|
+
*
|
746
|
+
* @see https://on.cypress.io/clearlocalstorage
|
747
|
+
* @param {string} [key] - name of a particular item to remove (optional).
|
748
|
+
* @param {options} [object] - options object
|
749
|
+
* @example
|
750
|
+
```
|
751
|
+
// Removes item "todos" without logging
|
752
|
+
cy.clearLocalStorage("todos", { log: false })
|
753
|
+
```
|
754
|
+
*/
|
750
755
|
clearLocalStorage(key: string, options: Partial<Loggable>): Chainable<Storage>
|
751
756
|
|
752
757
|
/**
|
@@ -834,7 +839,7 @@ declare namespace Cypress {
|
|
834
839
|
* // or use this shortcut
|
835
840
|
* cy.clock().invoke('restore')
|
836
841
|
*/
|
837
|
-
clock(now: number|Date, options?: Loggable): Chainable<Clock>
|
842
|
+
clock(now: number | Date, options?: Loggable): Chainable<Clock>
|
838
843
|
/**
|
839
844
|
* Mocks global clock but only overrides specific functions.
|
840
845
|
*
|
@@ -843,7 +848,7 @@ declare namespace Cypress {
|
|
843
848
|
* // keep current date but override "setTimeout" and "clearTimeout"
|
844
849
|
* cy.clock(null, ['setTimeout', 'clearTimeout'])
|
845
850
|
*/
|
846
|
-
clock(now: number|Date, functions?: Array<'setTimeout' | 'clearTimeout' | 'setInterval' | 'clearInterval' | 'Date'>, options?: Loggable): Chainable<Clock>
|
851
|
+
clock(now: number | Date, functions?: Array<'setTimeout' | 'clearTimeout' | 'setInterval' | 'clearInterval' | 'Date'>, options?: Loggable): Chainable<Clock>
|
847
852
|
/**
|
848
853
|
* Mocks global clock and all functions.
|
849
854
|
*
|
@@ -977,14 +982,14 @@ declare namespace Cypress {
|
|
977
982
|
*/
|
978
983
|
debug(options?: Partial<Loggable>): Chainable<Subject>
|
979
984
|
|
980
|
-
|
981
|
-
|
982
|
-
|
983
|
-
|
984
|
-
|
985
|
-
|
986
|
-
|
987
|
-
session(id: string|object, setup?: SessionOptions['validate'], options?: SessionOptions): Chainable<null>
|
985
|
+
/**
|
986
|
+
* Save/Restore browser Cookies, LocalStorage, and SessionStorage data resulting from the supplied `setup` function.
|
987
|
+
*
|
988
|
+
* Only available if the `experimentalSessionSupport` config option is enabled.
|
989
|
+
*
|
990
|
+
* @see https://on.cypress.io/session
|
991
|
+
*/
|
992
|
+
session(id: string | object, setup?: SessionOptions['validate'], options?: SessionOptions): Chainable<null>
|
988
993
|
|
989
994
|
/**
|
990
995
|
* Get the window.document of the page that is currently active.
|
@@ -1648,17 +1653,11 @@ declare namespace Cypress {
|
|
1648
1653
|
scrollTo(x: number | string, y: number | string, options?: Partial<ScrollToOptions>): Chainable<Subject>
|
1649
1654
|
|
1650
1655
|
/**
|
1651
|
-
* Select an `<option>` with specific text within a `<select>`.
|
1652
|
-
*
|
1653
|
-
* @see https://on.cypress.io/select
|
1654
|
-
*/
|
1655
|
-
select(text: string | string[], options?: Partial<SelectOptions>): Chainable<Subject>
|
1656
|
-
/**
|
1657
|
-
* Select an `<option>` with specific value(s) within a `<select>`.
|
1656
|
+
* Select an `<option>` with specific text, value, or index within a `<select>`.
|
1658
1657
|
*
|
1659
1658
|
* @see https://on.cypress.io/select
|
1660
1659
|
*/
|
1661
|
-
select(
|
1660
|
+
select(valueOrTextOrIndex: string | number | Array<string | number>, options?: Partial<SelectOptions>): Chainable<Subject>
|
1662
1661
|
|
1663
1662
|
/**
|
1664
1663
|
* @deprecated Use `cy.intercept()` instead.
|
@@ -1909,13 +1908,13 @@ declare namespace Cypress {
|
|
1909
1908
|
*
|
1910
1909
|
* @see https://on.cypress.io/then
|
1911
1910
|
*/
|
1912
|
-
|
1913
|
-
|
1914
|
-
|
1915
|
-
|
1916
|
-
|
1917
|
-
|
1918
|
-
|
1911
|
+
then<S extends HTMLElement>(options: Partial<Timeoutable>, fn: (this: ObjectLike, currentSubject: Subject) => S): Chainable<JQuery<S>>
|
1912
|
+
/**
|
1913
|
+
* Enables you to work with the subject yielded from the previous command / promise.
|
1914
|
+
*
|
1915
|
+
* @see https://on.cypress.io/then
|
1916
|
+
*/
|
1917
|
+
then<S extends ArrayLike<HTMLElement>>(options: Partial<Timeoutable>, fn: (this: ObjectLike, currentSubject: Subject) => S): Chainable<JQuery<S extends ArrayLike<infer T> ? T : never>>
|
1919
1918
|
/**
|
1920
1919
|
* Enables you to work with the subject yielded from the previous command / promise.
|
1921
1920
|
*
|
@@ -2578,6 +2577,11 @@ declare namespace Cypress {
|
|
2578
2577
|
* @default "spec"
|
2579
2578
|
*/
|
2580
2579
|
reporterOptions: { [key: string]: any }
|
2580
|
+
/**
|
2581
|
+
* Slow test threshold in milliseconds. Only affects the visual output of some reporters. For example, the spec reporter will display the test time in yellow if over the threshold.
|
2582
|
+
* @default 10000
|
2583
|
+
*/
|
2584
|
+
slowTestThreshold: number
|
2581
2585
|
/**
|
2582
2586
|
* Whether Cypress will watch and restart tests on test file changes
|
2583
2587
|
* @default true
|
@@ -2754,7 +2758,7 @@ declare namespace Cypress {
|
|
2754
2758
|
* To enable test retries only in runMode, set e.g. `{ openMode: null, runMode: 2 }`
|
2755
2759
|
* @default null
|
2756
2760
|
*/
|
2757
|
-
retries: Nullable<number | {runMode?: Nullable<number>, openMode?: Nullable<number>}>
|
2761
|
+
retries: Nullable<number | { runMode?: Nullable<number>, openMode?: Nullable<number> }>
|
2758
2762
|
/**
|
2759
2763
|
* Enables including elements within the shadow DOM when using querying
|
2760
2764
|
* commands (e.g. cy.get(), cy.find()). Can be set globally in cypress.json,
|
@@ -2876,7 +2880,7 @@ declare namespace Cypress {
|
|
2876
2880
|
socketId: null | string
|
2877
2881
|
socketIoCookie: string
|
2878
2882
|
socketIoRoute: string
|
2879
|
-
spec: Cypress['spec']
|
2883
|
+
spec: Cypress['spec'] | null
|
2880
2884
|
specs: Array<Cypress['spec']>
|
2881
2885
|
xhrRoute: string
|
2882
2886
|
xhrUrl: string
|
@@ -2891,7 +2895,7 @@ declare namespace Cypress {
|
|
2891
2895
|
* All configuration items are optional.
|
2892
2896
|
*/
|
2893
2897
|
type CoreConfigOptions = Partial<Omit<ResolvedConfigOptions, TestingType>>
|
2894
|
-
type ConfigOptions = CoreConfigOptions & {e2e?: CoreConfigOptions, component?: CoreConfigOptions }
|
2898
|
+
type ConfigOptions = CoreConfigOptions & { e2e?: CoreConfigOptions, component?: CoreConfigOptions }
|
2895
2899
|
|
2896
2900
|
interface PluginConfigOptions extends ResolvedConfigOptions {
|
2897
2901
|
/**
|
@@ -2998,6 +3002,7 @@ declare namespace Cypress {
|
|
2998
3002
|
disableTimersAndAnimations: boolean
|
2999
3003
|
padding: Padding
|
3000
3004
|
scale: boolean
|
3005
|
+
overwrite: boolean
|
3001
3006
|
onBeforeScreenshot: ($el: JQuery) => void
|
3002
3007
|
onAfterScreenshot: ($el: JQuery, props: {
|
3003
3008
|
path: string
|
@@ -5703,48 +5708,48 @@ declare namespace Cypress {
|
|
5703
5708
|
}
|
5704
5709
|
```
|
5705
5710
|
*/
|
5706
|
-
interface cy extends Chainable<undefined> {}
|
5711
|
+
interface cy extends Chainable<undefined> { }
|
5707
5712
|
}
|
5708
5713
|
|
5709
5714
|
declare namespace Mocha {
|
5710
5715
|
interface TestFunction {
|
5711
|
-
|
5712
|
-
|
5713
|
-
|
5714
|
-
|
5715
|
-
|
5716
|
-
|
5717
|
-
|
5718
|
-
|
5719
|
-
|
5720
|
-
|
5721
|
-
|
5716
|
+
/**
|
5717
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5718
|
+
* as a thunk.
|
5719
|
+
*/
|
5720
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: Func): Test
|
5721
|
+
|
5722
|
+
/**
|
5723
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5724
|
+
* as a thunk.
|
5725
|
+
*/
|
5726
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: AsyncFunc): Test
|
5722
5727
|
}
|
5723
5728
|
interface ExclusiveTestFunction {
|
5724
|
-
|
5725
|
-
|
5726
|
-
|
5727
|
-
|
5728
|
-
|
5729
|
-
|
5730
|
-
|
5731
|
-
|
5732
|
-
|
5733
|
-
|
5734
|
-
|
5729
|
+
/**
|
5730
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5731
|
+
* as a thunk.
|
5732
|
+
*/
|
5733
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: Func): Test
|
5734
|
+
|
5735
|
+
/**
|
5736
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5737
|
+
* as a thunk.
|
5738
|
+
*/
|
5739
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: AsyncFunc): Test
|
5735
5740
|
}
|
5736
5741
|
interface PendingTestFunction {
|
5737
|
-
|
5738
|
-
|
5739
|
-
|
5740
|
-
|
5741
|
-
|
5742
|
-
|
5743
|
-
|
5744
|
-
|
5745
|
-
|
5746
|
-
|
5747
|
-
|
5742
|
+
/**
|
5743
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5744
|
+
* as a thunk.
|
5745
|
+
*/
|
5746
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: Func): Test
|
5747
|
+
|
5748
|
+
/**
|
5749
|
+
* Describe a specification or test-case with the given `title`, TestOptions, and callback `fn` acting
|
5750
|
+
* as a thunk.
|
5751
|
+
*/
|
5752
|
+
(title: string, config: Cypress.TestConfigOverrides, fn?: AsyncFunc): Test
|
5748
5753
|
}
|
5749
5754
|
|
5750
5755
|
interface SuiteFunction {
|