cypress 11.0.1 → 11.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -8,7 +8,8 @@
8
8
  "build": "rollup -c rollup.config.mjs",
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
10
  "build-prod": "yarn build",
11
- "check-ts": "tsc --noEmit"
11
+ "check-ts": "tsc --noEmit",
12
+ "lint": "eslint --ext .js,.ts,.json, ."
12
13
  },
13
14
  "dependencies": {},
14
15
  "devDependencies": {
package/lib/cli.js CHANGED
@@ -123,7 +123,7 @@ const descriptions = {
123
123
  exit: 'keep the browser open after tests finish',
124
124
  forceInstall: 'force install the Cypress binary',
125
125
  global: 'force Cypress into global mode as if its globally installed',
126
- group: 'a named group for recorded runs in the Cypress Dashboard',
126
+ group: 'a named group for recorded runs in Cypress Cloud',
127
127
  headed: 'displays the browser instead of running headlessly',
128
128
  headless: 'hide the browser instead of running headed (default for cypress run)',
129
129
  key: 'your secret Record Key. you can omit this if you set a CYPRESS_RECORD_KEY environment variable.',
@@ -131,11 +131,11 @@ const descriptions = {
131
131
  port: 'runs Cypress on a specific port. overrides any value in cypress.config.{js,ts,mjs,cjs}.',
132
132
  project: 'path to the project',
133
133
  quiet: 'run quietly, using only the configured reporter',
134
- record: 'records the run. sends test results, screenshots and videos to your Cypress Dashboard.',
134
+ record: 'records the run. sends test results, screenshots and videos to Cypress Cloud.',
135
135
  reporter: 'runs a specific mocha reporter. pass a path to use a custom reporter. defaults to "spec"',
136
136
  reporterOptions: 'options for the mocha reporter. defaults to "null"',
137
137
  spec: 'runs specific spec file(s). defaults to "all"',
138
- tag: 'named tag(s) for recorded runs in the Cypress Dashboard',
138
+ tag: 'named tag(s) for recorded runs in Cypress Cloud',
139
139
  version: 'prints Cypress version'
140
140
  };
141
141
  const knownCommands = ['cache', 'help', '-h', '--help', 'install', 'open', 'run', 'open-ct', 'run-ct', 'verify', '-v', '--version', 'version', 'info'];
@@ -8,7 +8,8 @@
8
8
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
9
9
  "build-prod": "yarn build",
10
10
  "check-ts": "tsc --noEmit",
11
- "watch": "tsc -w"
11
+ "watch": "tsc -w",
12
+ "lint": "eslint --ext .js,.ts,.json, ."
12
13
  },
13
14
  "dependencies": {},
14
15
  "devDependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cypress",
3
- "version": "11.0.1",
3
+ "version": "11.2.0",
4
4
  "main": "index.js",
5
5
  "scripts": {
6
6
  "postinstall": "node index.js --exec install",
@@ -118,8 +118,8 @@
118
118
  },
119
119
  "buildInfo": {
120
120
  "commitBranch": "develop",
121
- "commitSha": "e9e8cadda4fb14d601079018b57425b221a005d9",
122
- "commitDate": "2022-11-10T02:43:03.000Z",
121
+ "commitSha": "4bbd78e22e99ae72e909a45c8ff5e8c3fd7d61ef",
122
+ "commitDate": "2022-11-22T07:28:48.000Z",
123
123
  "stable": true
124
124
  },
125
125
  "description": "Cypress is a next generation front end testing tool built for the modern web",
@@ -12,6 +12,7 @@
12
12
  "cy:run": "node ../../scripts/cypress.js run --component",
13
13
  "cy:run:debug": "node --inspect-brk ../../scripts/start.js --component-testing --run-project ${PWD}",
14
14
  "test": "yarn cy:run",
15
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, .",
15
16
  "watch": "yarn build --watch --watch.exclude ./dist/**/*"
16
17
  },
17
18
  "devDependencies": {
@@ -7,7 +7,8 @@
7
7
  "build": "rimraf dist && rollup -c rollup.config.mjs",
8
8
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
9
9
  "build-prod": "yarn build",
10
- "watch": "yarn build --watch --watch.exclude ./dist/**/*"
10
+ "watch": "yarn build --watch --watch.exclude ./dist/**/*",
11
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, ."
11
12
  },
12
13
  "devDependencies": {
13
14
  "@cypress/mount-utils": "0.0.0-development",
@@ -8,6 +8,7 @@
8
8
  "build": "rollup -c rollup.config.mjs",
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
10
  "build-prod": "yarn build",
11
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json, .",
11
12
  "check-ts": "tsc --noEmit"
12
13
  },
13
14
  "devDependencies": {
@@ -229,6 +229,7 @@ declare namespace CypressCommandLine {
229
229
  startedAt: dateTimeISO
230
230
  endedAt: dateTimeISO
231
231
  duration: ms
232
+ wallClockDuration?: number
232
233
  }
233
234
  /**
234
235
  * Reporter name like "spec"
@@ -259,8 +260,10 @@ declare namespace CypressCommandLine {
259
260
  * resolved filename of the spec
260
261
  */
261
262
  absolute: string
263
+ relativeToCommonRoot: string
262
264
  }
263
265
  shouldUploadVideo: boolean
266
+ skippedSpec: boolean
264
267
  }
265
268
 
266
269
  /**
@@ -1,3 +1,4 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
1
2
  /// <reference path="./cypress-npm-api.d.ts" />
2
3
  /// <reference path="./cypress-eventemitter.d.ts" />
3
4
  /// <reference path="./cypress-type-helpers.d.ts" />
@@ -395,7 +396,7 @@ declare namespace Cypress {
395
396
  })
396
397
  ```
397
398
  */
398
- config(Object: ConfigOptions): void
399
+ config(Object: TestConfigOverrides): void
399
400
 
400
401
  // no real way to type without generics
401
402
  /**
@@ -470,19 +471,19 @@ declare namespace Cypress {
470
471
  add<T extends keyof Chainable>(name: T, options: CommandOptions & {prevSubject: false}, fn: CommandFn<T>): void
471
472
  add<T extends keyof Chainable, S = any>(name: T, options: CommandOptions & {prevSubject: true}, fn: CommandFnWithSubject<T, S>): void
472
473
  add<T extends keyof Chainable, S extends PrevSubject>(
473
- name: T, options: CommandOptions & { prevSubject: S | ['optional'] }, fn: CommandFnWithSubject<T, PrevSubjectMap[S]>,
474
+ name: T, options: CommandOptions & { prevSubject: S | ['optional'] }, fn: CommandFnWithSubject<T, PrevSubjectMap[S]>,
474
475
  ): void
475
476
  add<T extends keyof Chainable, S extends PrevSubject>(
476
- name: T, options: CommandOptions & { prevSubject: S[] }, fn: CommandFnWithSubject<T, PrevSubjectMap<void>[S]>,
477
+ name: T, options: CommandOptions & { prevSubject: S[] }, fn: CommandFnWithSubject<T, PrevSubjectMap<void>[S]>,
477
478
  ): void
478
479
  addAll<T extends keyof Chainable>(fns: CommandFns): void
479
480
  addAll<T extends keyof Chainable>(options: CommandOptions & {prevSubject: false}, fns: CommandFns): void
480
481
  addAll<T extends keyof Chainable, S = any>(options: CommandOptions & { prevSubject: true }, fns: CommandFnsWithSubject<S>): void
481
482
  addAll<T extends keyof Chainable, S extends PrevSubject>(
482
- options: CommandOptions & { prevSubject: S | ['optional'] }, fns: CommandFnsWithSubject<PrevSubjectMap[S]>,
483
+ options: CommandOptions & { prevSubject: S | ['optional'] }, fns: CommandFnsWithSubject<PrevSubjectMap[S]>,
483
484
  ): void
484
485
  addAll<T extends keyof Chainable, S extends PrevSubject>(
485
- options: CommandOptions & { prevSubject: S[] }, fns: CommandFnsWithSubject<PrevSubjectMap<void>[S]>,
486
+ options: CommandOptions & { prevSubject: S[] }, fns: CommandFnsWithSubject<PrevSubjectMap<void>[S]>,
486
487
  ): void
487
488
  overwrite<T extends keyof Chainable>(name: T, fn: CommandFnWithOriginalFn<T>): void
488
489
  overwrite<T extends keyof Chainable, S extends PrevSubject>(name: T, fn: CommandFnWithOriginalFnAndSubject<T, PrevSubjectMap[S]>): void
@@ -659,7 +660,7 @@ declare namespace Cypress {
659
660
  * Whether or not to persist the session across all specs in the run.
660
661
  * @default {false}
661
662
  */
662
- cacheAcrossSpecs?: boolean,
663
+ cacheAcrossSpecs?: boolean
663
664
  /**
664
665
  * Function to run immediately after the session is created and `setup` function runs or
665
666
  * after a session is restored and the page is cleared. If this returns `false`, throws an
@@ -670,14 +671,14 @@ declare namespace Cypress {
670
671
  * If validation fails after restoring a session, `setup` will re-run.
671
672
  * @default {false}
672
673
  */
673
- validate?: () => Promise<false | void> | false | void
674
+ validate?: () => Promise<false | void> | void
674
675
  }
675
676
 
676
677
  type CanReturnChainable = void | Chainable | Promise<unknown>
677
678
  type ThenReturn<S, R> =
678
679
  R extends void ? Chainable<S> :
679
- R extends R | undefined ? Chainable<S | Exclude<R, undefined>> :
680
- Chainable<S>
680
+ R extends R | undefined ? Chainable<S | Exclude<R, undefined>> :
681
+ Chainable<S>
681
682
 
682
683
  /**
683
684
  * Chainable interface for non-array Subjects
@@ -2373,8 +2374,8 @@ declare namespace Cypress {
2373
2374
 
2374
2375
  type ChainableMethods<Subject = any> = {
2375
2376
  [P in keyof Chainable<Subject>]: Chainable<Subject>[P] extends ((...args: any[]) => any)
2376
- ? Chainable<Subject>[P]
2377
- : never
2377
+ ? Chainable<Subject>[P]
2378
+ : never
2378
2379
  }
2379
2380
 
2380
2381
  interface SinonSpyAgent<A extends sinon.SinonSpy> {
@@ -2863,7 +2864,7 @@ declare namespace Cypress {
2863
2864
  */
2864
2865
  video: boolean
2865
2866
  /**
2866
- * Whether Cypress will upload the video to the Dashboard even if all tests are passing. This applies only when recording your runs to the Dashboard. Turn this off if you'd like the video uploaded only when there are failing tests.
2867
+ * Whether Cypress will upload the video to Cypress Cloud even if all tests are passing. This applies only when recording your runs to Cypress Cloud. Turn this off if you'd like the video uploaded only when there are failing tests.
2867
2868
  * @default true
2868
2869
  */
2869
2870
  videoUploadOnPasses: boolean
@@ -2982,7 +2983,7 @@ declare namespace Cypress {
2982
2983
  * Override default config options for E2E Testing runner.
2983
2984
  * @default {}
2984
2985
  */
2985
- e2e: Omit<CoreConfigOptions, 'indexHtmlFile'>
2986
+ e2e: EndToEndConfigOptions
2986
2987
 
2987
2988
  /**
2988
2989
  * An array of objects defining the certificates
@@ -2997,6 +2998,14 @@ declare namespace Cypress {
2997
2998
  indexHtmlFile: string
2998
2999
  }
2999
3000
 
3001
+ interface EndToEndConfigOptions extends Omit<CoreConfigOptions, 'indexHtmlFile'> {
3002
+ /**
3003
+ * Enables the "Run All Specs" UI feature, allowing the execution of multiple specs sequentially.
3004
+ * @default false
3005
+ */
3006
+ experimentalRunAllSpecs?: boolean
3007
+ }
3008
+
3000
3009
  /**
3001
3010
  * Options appended to config object on runtime.
3002
3011
  */
@@ -3074,7 +3083,16 @@ declare namespace Cypress {
3074
3083
  xhrUrl: string
3075
3084
  }
3076
3085
 
3077
- interface TestConfigOverrides extends Partial<Pick<ConfigOptions, 'animationDistanceThreshold' | 'blockHosts' | 'defaultCommandTimeout' | 'env' | 'execTimeout' | 'includeShadowDom' | 'numTestsKeptInMemory' | 'pageLoadTimeout' | 'redirectionLimit' | 'requestTimeout' | 'responseTimeout' | 'retries' | 'screenshotOnRunFailure' | 'slowTestThreshold' | 'scrollBehavior' | 'taskTimeout' | 'viewportHeight' | 'viewportWidth' | 'waitForAnimations' | 'experimentalSessionAndOrigin'>>, Partial<Pick<ResolvedConfigOptions, 'baseUrl'>> {
3086
+ interface SuiteConfigOverrides extends Partial<
3087
+ Pick<ConfigOptions, 'animationDistanceThreshold' | 'blockHosts' | 'defaultCommandTimeout' | 'env' | 'execTimeout' | 'includeShadowDom' | 'numTestsKeptInMemory' | 'pageLoadTimeout' | 'redirectionLimit' | 'requestTimeout' | 'responseTimeout' | 'retries' | 'screenshotOnRunFailure' | 'slowTestThreshold' | 'scrollBehavior' | 'taskTimeout' | 'viewportHeight' | 'viewportWidth' | 'waitForAnimations' | 'experimentalSessionAndOrigin'>
3088
+ >, Partial<Pick<ResolvedConfigOptions, 'baseUrl' | 'testIsolation'>> {
3089
+ browser?: IsBrowserMatcher | IsBrowserMatcher[]
3090
+ keystrokeDelay?: number
3091
+ }
3092
+
3093
+ interface TestConfigOverrides extends Partial<
3094
+ Pick<ConfigOptions, 'animationDistanceThreshold' | 'blockHosts' | 'defaultCommandTimeout' | 'env' | 'execTimeout' | 'includeShadowDom' | 'numTestsKeptInMemory' | 'pageLoadTimeout' | 'redirectionLimit' | 'requestTimeout' | 'responseTimeout' | 'retries' | 'screenshotOnRunFailure' | 'slowTestThreshold' | 'scrollBehavior' | 'taskTimeout' | 'viewportHeight' | 'viewportWidth' | 'waitForAnimations' | 'experimentalSessionAndOrigin'>
3095
+ >, Partial<Pick<ResolvedConfigOptions, 'baseUrl'>> {
3078
3096
  browser?: IsBrowserMatcher | IsBrowserMatcher[]
3079
3097
  keystrokeDelay?: number
3080
3098
  }
@@ -3103,15 +3121,15 @@ declare namespace Cypress {
3103
3121
  type PickConfigOpt<T> = T extends keyof DefineDevServerConfig ? DefineDevServerConfig[T] : any
3104
3122
 
3105
3123
  interface AngularDevServerProjectConfig {
3106
- root: string,
3107
- sourceRoot: string,
3124
+ root: string
3125
+ sourceRoot: string
3108
3126
  buildOptions: Record<string, any>
3109
3127
  }
3110
3128
 
3111
3129
  type DevServerFn<ComponentDevServerOpts = any> = (cypressDevServerConfig: DevServerConfig, devServerConfig: ComponentDevServerOpts) => ResolvedDevServerConfig | Promise<ResolvedDevServerConfig>
3112
3130
 
3113
3131
  type ConfigHandler<T> = T
3114
- | (() => T | Promise<T>)
3132
+ | (() => T | Promise<T>)
3115
3133
 
3116
3134
  type DevServerConfigOptions = {
3117
3135
  bundler: 'webpack'
@@ -3122,9 +3140,9 @@ declare namespace Cypress {
3122
3140
  framework: 'react' | 'vue' | 'svelte'
3123
3141
  viteConfig?: ConfigHandler<Omit<Exclude<PickConfigOpt<'viteConfig'>, undefined>, 'base' | 'root'>>
3124
3142
  } | {
3125
- bundler: 'webpack',
3126
- framework: 'angular',
3127
- webpackConfig?: ConfigHandler<PickConfigOpt<'webpackConfig'>>,
3143
+ bundler: 'webpack'
3144
+ framework: 'angular'
3145
+ webpackConfig?: ConfigHandler<PickConfigOpt<'webpackConfig'>>
3128
3146
  options?: {
3129
3147
  projectConfig: AngularDevServerProjectConfig
3130
3148
  }
@@ -3153,7 +3171,7 @@ declare namespace Cypress {
3153
3171
  /**
3154
3172
  * Hosts mappings to IP addresses.
3155
3173
  */
3156
- hosts?: null | {[key: string]: string}
3174
+ hosts?: null | {[key: string]: string}
3157
3175
  }
3158
3176
 
3159
3177
  interface PluginConfigOptions extends ResolvedConfigOptions, RuntimeConfigOptions {
@@ -6079,7 +6097,7 @@ declare namespace Mocha {
6079
6097
  * Describe a "suite" with the given `title`, TestOptions, and callback `fn` containing
6080
6098
  * nested suites.
6081
6099
  */
6082
- (title: string, config: Cypress.TestConfigOverrides, fn: (this: Suite) => void): Suite
6100
+ (title: string, config: Cypress.SuiteConfigOverrides, fn: (this: Suite) => void): Suite
6083
6101
  }
6084
6102
 
6085
6103
  interface ExclusiveSuiteFunction {
@@ -6087,10 +6105,10 @@ declare namespace Mocha {
6087
6105
  * Describe a "suite" with the given `title`, TestOptions, and callback `fn` containing
6088
6106
  * nested suites. Indicates this suite should be executed exclusively.
6089
6107
  */
6090
- (title: string, config: Cypress.TestConfigOverrides, fn: (this: Suite) => void): Suite
6108
+ (title: string, config: Cypress.SuiteConfigOverrides, fn: (this: Suite) => void): Suite
6091
6109
  }
6092
6110
 
6093
6111
  interface PendingSuiteFunction {
6094
- (title: string, config: Cypress.TestConfigOverrides, fn: (this: Suite) => void): Suite | void
6112
+ (title: string, config: Cypress.SuiteConfigOverrides, fn: (this: Suite) => void): Suite | void
6095
6113
  }
6096
6114
  }
package/vue/package.json CHANGED
@@ -10,6 +10,8 @@
10
10
  "build": "rimraf dist && rollup -c rollup.config.mjs",
11
11
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
12
12
  "typecheck": "yarn tsd && vue-tsc --noEmit",
13
+ "check-ts": "yarn tsd && vue-tsc --noEmit",
14
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json,.vue .",
13
15
  "test": "yarn cy:run",
14
16
  "tsd": "yarn build && yarn tsc -p test-tsd/tsconfig.tsd.json",
15
17
  "watch": "yarn build --watch --watch.exclude ./dist/**/*"
package/vue2/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [@cypress/vue2-v2.0.1](https://github.com/cypress-io/cypress/compare/@cypress/vue2-v2.0.0...@cypress/vue2-v2.0.1) (2022-11-14)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * vue2 global directives in component testing ([#24488](https://github.com/cypress-io/cypress/issues/24488)) ([741019d](https://github.com/cypress-io/cypress/commit/741019d9618b7be79db64c9039ebca07741dd5c7))
7
+
1
8
  # [@cypress/vue2-v2.0.0](https://github.com/cypress-io/cypress/compare/@cypress/vue2-v1.1.2...@cypress/vue2-v2.0.0) (2022-11-07)
2
9
 
3
10
 
@@ -19872,6 +19872,14 @@ const installMixins = (Vue, options) => {
19872
19872
  });
19873
19873
  }
19874
19874
  };
19875
+ const registerGlobalDirectives = (Vue, options) => {
19876
+ const directives = Cypress._.get(options, 'extensions.directives');
19877
+ if (Cypress._.isPlainObject(directives)) {
19878
+ Object.keys(directives).forEach((name) => {
19879
+ Vue.directive(name, directives[name]);
19880
+ });
19881
+ }
19882
+ };
19875
19883
  const hasStore = ({ store }) => Boolean(store && store._vm);
19876
19884
  const forEachValue = (obj, fn) => {
19877
19885
  return Object.keys(obj).forEach((key) => fn(obj[key], key));
@@ -19988,6 +19996,7 @@ const mount = (component, optionsOrProps = {}) => {
19988
19996
  installFilters(localVue, options);
19989
19997
  installMixins(localVue, options);
19990
19998
  installPlugins(localVue, options, props);
19999
+ registerGlobalDirectives(localVue, options);
19991
20000
  registerGlobalComponents(localVue, options);
19992
20001
  props.attachTo = componentNode;
19993
20002
  const wrapper = localVue.extend(component);
@@ -19864,6 +19864,14 @@ const installMixins = (Vue, options) => {
19864
19864
  });
19865
19865
  }
19866
19866
  };
19867
+ const registerGlobalDirectives = (Vue, options) => {
19868
+ const directives = Cypress._.get(options, 'extensions.directives');
19869
+ if (Cypress._.isPlainObject(directives)) {
19870
+ Object.keys(directives).forEach((name) => {
19871
+ Vue.directive(name, directives[name]);
19872
+ });
19873
+ }
19874
+ };
19867
19875
  const hasStore = ({ store }) => Boolean(store && store._vm);
19868
19876
  const forEachValue = (obj, fn) => {
19869
19877
  return Object.keys(obj).forEach((key) => fn(obj[key], key));
@@ -19980,6 +19988,7 @@ const mount = (component, optionsOrProps = {}) => {
19980
19988
  installFilters(localVue, options);
19981
19989
  installMixins(localVue, options);
19982
19990
  installPlugins(localVue, options, props);
19991
+ registerGlobalDirectives(localVue, options);
19983
19992
  registerGlobalComponents(localVue, options);
19984
19993
  props.attachTo = componentNode;
19985
19994
  const wrapper = localVue.extend(component);
@@ -182,6 +182,9 @@ declare type VueLocalComponents = Record<string, VueComponent>;
182
182
  declare type VueFilters = {
183
183
  [key: string]: (value: string) => string;
184
184
  };
185
+ declare type VueDirectives = {
186
+ [key: string]: Function | Object;
187
+ };
185
188
  declare type VueMixin = unknown;
186
189
  declare type VueMixins = VueMixin | VueMixin[];
187
190
  declare type VuePluginOptions = unknown;
@@ -259,6 +262,26 @@ interface MountOptionsExtensions {
259
262
  * @memberof MountOptionsExtensions
260
263
  */
261
264
  plugins?: VuePlugins;
265
+ /**
266
+ * Optional Vue directives to install while mounting the component
267
+ *
268
+ * @memberof MountOptionsExtensions
269
+ * @see https://github.com/cypress-io/cypress/tree/develop/npm/vue#examples
270
+ * @example
271
+ * const directives = {
272
+ * custom: {
273
+ * name: 'custom',
274
+ * bind (el, binding) {
275
+ * el.dataset['custom'] = binding.value
276
+ * },
277
+ * unbind (el) {
278
+ * el.removeAttribute('data-custom')
279
+ * },
280
+ * },
281
+ * }
282
+ * mount(Hello, { extensions: { directives }})
283
+ */
284
+ directives?: VueDirectives;
262
285
  }
263
286
  /**
264
287
  * Options controlling how the component is going to be mounted,
package/vue2/package.json CHANGED
@@ -9,7 +9,9 @@
9
9
  "postbuild": "node ../../scripts/sync-exported-npm-with-cli.js",
10
10
  "build-prod": "yarn build",
11
11
  "test": "echo \"Tests for @cypress/vue2 are run from system-tests\"",
12
- "watch": "yarn build --watch --watch.exclude ./dist/**/*"
12
+ "watch": "yarn build --watch --watch.exclude ./dist/**/*",
13
+ "lint": "eslint --ext .js,.jsx,.ts,.tsx,.json,.vue .",
14
+ "test-ci": "node ../../scripts/run-ct-examples.js --examplesList=./examples.env"
13
15
  },
14
16
  "devDependencies": {
15
17
  "@cypress/mount-utils": "0.0.0-development",