cypress 8.4.0 → 8.7.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/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 {
|