cypress 10.4.0 → 10.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.
Files changed (43) hide show
  1. package/angular/CHANGELOG.md +86 -0
  2. package/angular/README.md +85 -0
  3. package/angular/dist/index.d.ts +1 -0
  4. package/angular/dist/index.js +265 -0
  5. package/angular/dist/mount.d.ts +112 -0
  6. package/angular/package.json +68 -0
  7. package/lib/tasks/download.js +4 -3
  8. package/mount-utils/CHANGELOG.md +7 -0
  9. package/mount-utils/package.json +5 -1
  10. package/package.json +16 -4
  11. package/react/CHANGELOG.md +20 -0
  12. package/react/dist/createMount.d.ts +7 -6
  13. package/react/dist/cypress-react.cjs.js +653 -140
  14. package/react/dist/cypress-react.esm-bundler.js +640 -127
  15. package/react/dist/mount.d.ts +2 -1
  16. package/react/dist/mountHook.d.ts +1 -0
  17. package/react/dist/types.d.ts +2 -7
  18. package/react/package.json +4 -6
  19. package/react18/CHANGELOG.md +13 -0
  20. package/react18/dist/cypress-react.cjs.js +300 -118
  21. package/react18/dist/cypress-react.esm-bundler.js +286 -104
  22. package/react18/dist/index.d.ts +2 -1
  23. package/react18/package.json +2 -2
  24. package/svelte/CHANGELOG.md +0 -0
  25. package/svelte/README.md +83 -0
  26. package/svelte/dist/cypress-svelte.cjs.js +213 -0
  27. package/svelte/dist/cypress-svelte.esm-bundler.js +209 -0
  28. package/svelte/dist/index.d.ts +1 -0
  29. package/svelte/dist/mount.d.ts +30 -0
  30. package/svelte/package.json +43 -0
  31. package/types/cypress-type-helpers.d.ts +3 -1
  32. package/types/cypress.d.ts +61 -5
  33. package/vue/CHANGELOG.md +14 -0
  34. package/vue/dist/cypress-vue.cjs.js +30 -38
  35. package/vue/dist/cypress-vue.esm-bundler.js +30 -38
  36. package/vue/dist/index.d.ts +1 -0
  37. package/vue/package.json +2 -8
  38. package/vue2/CHANGELOG.md +7 -0
  39. package/vue2/dist/cypress-vue2.cjs.js +53 -84
  40. package/vue2/dist/cypress-vue2.esm-bundler.js +53 -84
  41. package/vue2/dist/index.d.ts +1 -0
  42. package/vue2/package.json +2 -5
  43. package/vue2/dist/cypress-vue2.browser.js +0 -20197
@@ -46,17 +46,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
46
46
  PERFORMANCE OF THIS SOFTWARE.
47
47
  ***************************************************************************** */
48
48
 
49
- var __assign$1 = function() {
50
- __assign$1 = Object.assign || function __assign(t) {
51
- for (var s, i = 1, n = arguments.length; i < n; i++) {
52
- s = arguments[i];
53
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
54
- }
55
- return t;
56
- };
57
- return __assign$1.apply(this, arguments);
58
- };
59
-
60
49
  function __rest(s, e) {
61
50
  var t = {};
62
51
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -13721,7 +13710,7 @@ function mount$1(inputComponent, options) {
13721
13710
  trackInstance(wrapper);
13722
13711
  return wrapper;
13723
13712
  }
13724
- var shallowMount = function (component, options) {
13713
+ var shallowMount$1 = function (component, options) {
13725
13714
  return mount$1(component, __assign(__assign({}, options), { shallow: true }));
13726
13715
  };
13727
13716
 
@@ -13790,15 +13779,20 @@ var _VueTestUtils = /*#__PURE__*/Object.freeze({
13790
13779
  enableAutoUnmount: enableAutoUnmount,
13791
13780
  flushPromises: flushPromises,
13792
13781
  mount: mount$1,
13793
- shallowMount: shallowMount
13782
+ shallowMount: shallowMount$1
13794
13783
  });
13795
13784
 
13796
- var // We do not expose the `mount` from VueTestUtils, instead, we wrap it and expose a
13785
+ const {
13786
+ // We do not expose the `mount` from VueTestUtils, instead, we wrap it and expose a
13797
13787
  // Cypress-compatible `mount` API.
13798
- VTUmount = mount$1,
13799
- VueTestUtils = __rest(_VueTestUtils, ["mount", "shallowMount"]);
13800
- var DEFAULT_COMP_NAME = 'unknown';
13801
- Cypress.on('run:start', function () {
13788
+ mount: VTUmount,
13789
+ // We do not expose shallowMount. It doesn't make much sense in the context of Cypress.
13790
+ // It might be useful for people who like to migrate some Test Utils tests to Cypress,
13791
+ // so if we decide it is useful to expose, just remove the next line, and it will be
13792
+ // available on the `VueTestUtils` import.
13793
+ shallowMount } = _VueTestUtils, VueTestUtils = __rest(_VueTestUtils, ["mount", "shallowMount"]);
13794
+ const DEFAULT_COMP_NAME = 'unknown';
13795
+ Cypress.on('run:start', () => {
13802
13796
  // `mount` is designed to work with component testing only.
13803
13797
  // it assumes ROOT_SELECTOR exists, which is not the case in e2e.
13804
13798
  // if the user registers a custom command that imports `cypress/vue`,
@@ -13808,22 +13802,21 @@ Cypress.on('run:start', function () {
13808
13802
  if (Cypress.testingType !== 'component') {
13809
13803
  return;
13810
13804
  }
13811
- Cypress.on('test:before:run', function () {
13805
+ Cypress.on('test:before:run', () => {
13812
13806
  var _a;
13813
13807
  (_a = Cypress.vueWrapper) === null || _a === void 0 ? void 0 : _a.unmount();
13814
- var el = getContainerEl();
13808
+ const el = getContainerEl();
13815
13809
  el.innerHTML = '';
13816
13810
  });
13817
13811
  });
13818
13812
  // implementation
13819
- function mount(componentOptions, options) {
13820
- if (options === void 0) { options = {}; }
13813
+ function mount(componentOptions, options = {}) {
13821
13814
  // TODO: get the real displayName and props from VTU shallowMount
13822
- var componentName = getComponentDisplayName(componentOptions);
13823
- var message = "<" + componentName + " ... />";
13824
- var logInstance;
13815
+ const componentName = getComponentDisplayName(componentOptions);
13816
+ const message = `<${componentName} ... />`;
13817
+ let logInstance;
13825
13818
  // then wait for cypress to load
13826
- return cy.then(function () {
13819
+ return cy.then(() => {
13827
13820
  var _a, _b;
13828
13821
  if (options.log !== false) {
13829
13822
  logInstance = Cypress.log({
@@ -13832,26 +13825,26 @@ function mount(componentOptions, options) {
13832
13825
  });
13833
13826
  }
13834
13827
  // @ts-ignore
13835
- var document = cy.state('document');
13836
- var el = getContainerEl();
13828
+ const document = cy.state('document');
13829
+ const el = getContainerEl();
13837
13830
  injectStylesBeforeElement(options, document, el);
13838
13831
  // merge the extensions with global
13839
13832
  if (options.extensions) {
13840
13833
  options.extensions.plugins = (_a = []) === null || _a === void 0 ? void 0 : _a.concat(options.extensions.plugins || [], options.extensions.use || []);
13841
13834
  options.extensions.mixins = (_b = []) === null || _b === void 0 ? void 0 : _b.concat(options.extensions.mixins || [], options.extensions.mixin || []);
13842
- options.global = __assign$1(__assign$1({}, options.extensions), options.global);
13835
+ options.global = Object.assign(Object.assign({}, options.extensions), options.global);
13843
13836
  }
13844
- var componentNode = document.createElement('div');
13837
+ const componentNode = document.createElement('div');
13845
13838
  componentNode.id = '__cy_vue_root';
13846
13839
  el.append(componentNode);
13847
13840
  // mount the component using VTU and return the wrapper in Cypress.VueWrapper
13848
- var wrapper = VTUmount(componentOptions, __assign$1({ attachTo: componentNode }, options));
13841
+ const wrapper = VTUmount(componentOptions, Object.assign({ attachTo: componentNode }, options));
13849
13842
  Cypress.vueWrapper = wrapper;
13850
13843
  Cypress.vue = wrapper.vm;
13851
13844
  return cy
13852
13845
  .wrap(wrapper, { log: false })
13853
13846
  .wait(1, { log: false })
13854
- .then(function () {
13847
+ .then(() => {
13855
13848
  if (logInstance) {
13856
13849
  logInstance.snapshot('mounted');
13857
13850
  logInstance.end();
@@ -13873,10 +13866,10 @@ function getComponentDisplayName(componentOptions) {
13873
13866
  return componentOptions.name;
13874
13867
  }
13875
13868
  if (componentOptions.__file) {
13876
- var filepathSplit = componentOptions.__file.split('/');
13877
- var fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
13869
+ const filepathSplit = componentOptions.__file.split('/');
13870
+ const fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
13878
13871
  // remove the extension .js, .ts or .vue from the filename to get the name of the component
13879
- var baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
13872
+ const baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
13880
13873
  // if the filename is index, then we can use the direct parent foldername, else use the name itself
13881
13874
  return (baseFileName === 'index' ? filepathSplit[filepathSplit.length - 2] : baseFileName);
13882
13875
  }
@@ -13888,9 +13881,8 @@ function getComponentDisplayName(componentOptions) {
13888
13881
  * import {mountCallback} from '@cypress/vue'
13889
13882
  * beforeEach(mountVue(component, options))
13890
13883
  */
13891
- function mountCallback(component, options) {
13892
- if (options === void 0) { options = {}; }
13893
- return function () {
13884
+ function mountCallback(component, options = {}) {
13885
+ return () => {
13894
13886
  return mount(component, options);
13895
13887
  };
13896
13888
  }
@@ -23,17 +23,6 @@ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
23
23
  PERFORMANCE OF THIS SOFTWARE.
24
24
  ***************************************************************************** */
25
25
 
26
- var __assign$1 = function() {
27
- __assign$1 = Object.assign || function __assign(t) {
28
- for (var s, i = 1, n = arguments.length; i < n; i++) {
29
- s = arguments[i];
30
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
31
- }
32
- return t;
33
- };
34
- return __assign$1.apply(this, arguments);
35
- };
36
-
37
26
  function __rest(s, e) {
38
27
  var t = {};
39
28
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -13698,7 +13687,7 @@ function mount$1(inputComponent, options) {
13698
13687
  trackInstance(wrapper);
13699
13688
  return wrapper;
13700
13689
  }
13701
- var shallowMount = function (component, options) {
13690
+ var shallowMount$1 = function (component, options) {
13702
13691
  return mount$1(component, __assign(__assign({}, options), { shallow: true }));
13703
13692
  };
13704
13693
 
@@ -13767,15 +13756,20 @@ var _VueTestUtils = /*#__PURE__*/Object.freeze({
13767
13756
  enableAutoUnmount: enableAutoUnmount,
13768
13757
  flushPromises: flushPromises,
13769
13758
  mount: mount$1,
13770
- shallowMount: shallowMount
13759
+ shallowMount: shallowMount$1
13771
13760
  });
13772
13761
 
13773
- var // We do not expose the `mount` from VueTestUtils, instead, we wrap it and expose a
13762
+ const {
13763
+ // We do not expose the `mount` from VueTestUtils, instead, we wrap it and expose a
13774
13764
  // Cypress-compatible `mount` API.
13775
- VTUmount = mount$1,
13776
- VueTestUtils = __rest(_VueTestUtils, ["mount", "shallowMount"]);
13777
- var DEFAULT_COMP_NAME = 'unknown';
13778
- Cypress.on('run:start', function () {
13765
+ mount: VTUmount,
13766
+ // We do not expose shallowMount. It doesn't make much sense in the context of Cypress.
13767
+ // It might be useful for people who like to migrate some Test Utils tests to Cypress,
13768
+ // so if we decide it is useful to expose, just remove the next line, and it will be
13769
+ // available on the `VueTestUtils` import.
13770
+ shallowMount } = _VueTestUtils, VueTestUtils = __rest(_VueTestUtils, ["mount", "shallowMount"]);
13771
+ const DEFAULT_COMP_NAME = 'unknown';
13772
+ Cypress.on('run:start', () => {
13779
13773
  // `mount` is designed to work with component testing only.
13780
13774
  // it assumes ROOT_SELECTOR exists, which is not the case in e2e.
13781
13775
  // if the user registers a custom command that imports `cypress/vue`,
@@ -13785,22 +13779,21 @@ Cypress.on('run:start', function () {
13785
13779
  if (Cypress.testingType !== 'component') {
13786
13780
  return;
13787
13781
  }
13788
- Cypress.on('test:before:run', function () {
13782
+ Cypress.on('test:before:run', () => {
13789
13783
  var _a;
13790
13784
  (_a = Cypress.vueWrapper) === null || _a === void 0 ? void 0 : _a.unmount();
13791
- var el = getContainerEl();
13785
+ const el = getContainerEl();
13792
13786
  el.innerHTML = '';
13793
13787
  });
13794
13788
  });
13795
13789
  // implementation
13796
- function mount(componentOptions, options) {
13797
- if (options === void 0) { options = {}; }
13790
+ function mount(componentOptions, options = {}) {
13798
13791
  // TODO: get the real displayName and props from VTU shallowMount
13799
- var componentName = getComponentDisplayName(componentOptions);
13800
- var message = "<" + componentName + " ... />";
13801
- var logInstance;
13792
+ const componentName = getComponentDisplayName(componentOptions);
13793
+ const message = `<${componentName} ... />`;
13794
+ let logInstance;
13802
13795
  // then wait for cypress to load
13803
- return cy.then(function () {
13796
+ return cy.then(() => {
13804
13797
  var _a, _b;
13805
13798
  if (options.log !== false) {
13806
13799
  logInstance = Cypress.log({
@@ -13809,26 +13802,26 @@ function mount(componentOptions, options) {
13809
13802
  });
13810
13803
  }
13811
13804
  // @ts-ignore
13812
- var document = cy.state('document');
13813
- var el = getContainerEl();
13805
+ const document = cy.state('document');
13806
+ const el = getContainerEl();
13814
13807
  injectStylesBeforeElement(options, document, el);
13815
13808
  // merge the extensions with global
13816
13809
  if (options.extensions) {
13817
13810
  options.extensions.plugins = (_a = []) === null || _a === void 0 ? void 0 : _a.concat(options.extensions.plugins || [], options.extensions.use || []);
13818
13811
  options.extensions.mixins = (_b = []) === null || _b === void 0 ? void 0 : _b.concat(options.extensions.mixins || [], options.extensions.mixin || []);
13819
- options.global = __assign$1(__assign$1({}, options.extensions), options.global);
13812
+ options.global = Object.assign(Object.assign({}, options.extensions), options.global);
13820
13813
  }
13821
- var componentNode = document.createElement('div');
13814
+ const componentNode = document.createElement('div');
13822
13815
  componentNode.id = '__cy_vue_root';
13823
13816
  el.append(componentNode);
13824
13817
  // mount the component using VTU and return the wrapper in Cypress.VueWrapper
13825
- var wrapper = VTUmount(componentOptions, __assign$1({ attachTo: componentNode }, options));
13818
+ const wrapper = VTUmount(componentOptions, Object.assign({ attachTo: componentNode }, options));
13826
13819
  Cypress.vueWrapper = wrapper;
13827
13820
  Cypress.vue = wrapper.vm;
13828
13821
  return cy
13829
13822
  .wrap(wrapper, { log: false })
13830
13823
  .wait(1, { log: false })
13831
- .then(function () {
13824
+ .then(() => {
13832
13825
  if (logInstance) {
13833
13826
  logInstance.snapshot('mounted');
13834
13827
  logInstance.end();
@@ -13850,10 +13843,10 @@ function getComponentDisplayName(componentOptions) {
13850
13843
  return componentOptions.name;
13851
13844
  }
13852
13845
  if (componentOptions.__file) {
13853
- var filepathSplit = componentOptions.__file.split('/');
13854
- var fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
13846
+ const filepathSplit = componentOptions.__file.split('/');
13847
+ const fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
13855
13848
  // remove the extension .js, .ts or .vue from the filename to get the name of the component
13856
- var baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
13849
+ const baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
13857
13850
  // if the filename is index, then we can use the direct parent foldername, else use the name itself
13858
13851
  return (baseFileName === 'index' ? filepathSplit[filepathSplit.length - 2] : baseFileName);
13859
13852
  }
@@ -13865,9 +13858,8 @@ function getComponentDisplayName(componentOptions) {
13865
13858
  * import {mountCallback} from '@cypress/vue'
13866
13859
  * beforeEach(mountVue(component, options))
13867
13860
  */
13868
- function mountCallback(component, options) {
13869
- if (options === void 0) { options = {}; }
13870
- return function () {
13861
+ function mountCallback(component, options = {}) {
13862
+ return () => {
13871
13863
  return mount(component, options);
13872
13864
  };
13873
13865
  }
@@ -1,4 +1,5 @@
1
1
  /// <reference types="cypress" />
2
+ /// <reference types="cypress" />
2
3
  import type { ComponentPublicInstance, VNodeProps, AllowedComponentProps, ComponentCustomProps, ExtractPropTypes, ExtractDefaultPropTypes, DefineComponent, FunctionalComponent, ComputedOptions, MethodOptions, ComponentOptionsMixin, EmitsOptions, ComponentOptionsWithObjectProps, ComponentPropsOptions, ComponentOptionsWithArrayProps, ComponentOptionsWithoutProps } from 'vue';
3
4
  import type { MountingOptions, VueWrapper } from './@vue/test-utils';
4
5
  import { StyleOptions } from '@cypress/mount-utils';
package/vue/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "build-prod": "yarn build",
8
8
  "cy:open": "node ../../scripts/cypress.js open --component --project ${PWD}",
9
9
  "cy:run": "node ../../scripts/cypress.js run --component --project ${PWD}",
10
- "build": "rimraf dist && rollup -c rollup.config.js",
10
+ "build": "rimraf dist && rollup -c rollup.config.mjs",
11
11
  "postbuild": "node --require @packages/ts/register ./inline-types.ts && node ../../scripts/sync-exported-npm-with-cli.js",
12
12
  "typecheck": "yarn tsd && vue-tsc --noEmit",
13
13
  "test": "yarn cy:run",
@@ -15,10 +15,7 @@
15
15
  "watch": "yarn build --watch --watch.exclude ./dist/**/*"
16
16
  },
17
17
  "devDependencies": {
18
- "@cypress/code-coverage": "3.8.1",
19
18
  "@cypress/mount-utils": "0.0.0-development",
20
- "@rollup/plugin-commonjs": "^17.1.0",
21
- "@rollup/plugin-node-resolve": "^11.1.1",
22
19
  "@vitejs/plugin-vue": "2.3.1",
23
20
  "@vue/compiler-sfc": "3.2.31",
24
21
  "@vue/test-utils": "2.0.2",
@@ -26,11 +23,8 @@
26
23
  "cypress": "0.0.0-development",
27
24
  "debug": "^4.3.2",
28
25
  "globby": "^11.0.1",
29
- "rollup": "^2.38.5",
30
- "rollup-plugin-istanbul": "2.0.1",
31
- "rollup-plugin-typescript2": "^0.29.0",
32
26
  "tailwindcss": "1.1.4",
33
- "typescript": "^4.2.3",
27
+ "typescript": "^4.7.4",
34
28
  "vite": "3.0.3",
35
29
  "vue": "3.2.31",
36
30
  "vue-i18n": "9.0.0-rc.6",
package/vue2/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ # [@cypress/vue2-v1.0.2](https://github.com/cypress-io/cypress/compare/@cypress/vue2-v1.0.1...@cypress/vue2-v1.0.2) (2022-08-11)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * remove CT side effects from mount when e2e testing ([#22633](https://github.com/cypress-io/cypress/issues/22633)) ([a9476ec](https://github.com/cypress-io/cypress/commit/a9476ecb3d43f628b689e060294a1952937cb1a7))
7
+
1
8
  # [@cypress/vue2-v1.0.1](https://github.com/cypress-io/cypress/compare/@cypress/vue2-v1.0.0...@cypress/vue2-v1.0.1) (2022-06-13)
2
9
 
3
10
 
@@ -15,32 +15,6 @@ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'defau
15
15
 
16
16
  var require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0$1);
17
17
 
18
- /******************************************************************************
19
- Copyright (c) Microsoft Corporation.
20
-
21
- Permission to use, copy, modify, and/or distribute this software for any
22
- purpose with or without fee is hereby granted.
23
-
24
- THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
25
- REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
26
- AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
27
- INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
28
- LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
29
- OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
30
- PERFORMANCE OF THIS SOFTWARE.
31
- ***************************************************************************** */
32
-
33
- var __assign = function() {
34
- __assign = Object.assign || function __assign(t) {
35
- for (var s, i = 1, n = arguments.length; i < n; i++) {
36
- s = arguments[i];
37
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
38
- }
39
- return t;
40
- };
41
- return __assign.apply(this, arguments);
42
- };
43
-
44
18
  var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
45
19
 
46
20
  function createCommonjsModule$1(fn) {
@@ -19987,64 +19961,60 @@ function setupHooks(optionalCallback) {
19987
19961
  });
19988
19962
  }
19989
19963
 
19990
- var defaultOptions = [
19964
+ const defaultOptions = [
19991
19965
  'vue',
19992
19966
  'extensions',
19993
19967
  ];
19994
- var DEFAULT_COMP_NAME = 'unknown';
19995
- var registerGlobalComponents = function (Vue, options) {
19996
- var globalComponents = Cypress._.get(options, 'extensions.components');
19968
+ const DEFAULT_COMP_NAME = 'unknown';
19969
+ const registerGlobalComponents = (Vue, options) => {
19970
+ const globalComponents = Cypress._.get(options, 'extensions.components');
19997
19971
  if (Cypress._.isPlainObject(globalComponents)) {
19998
- Cypress._.forEach(globalComponents, function (component, id) {
19972
+ Cypress._.forEach(globalComponents, (component, id) => {
19999
19973
  Vue.component(id, component);
20000
19974
  });
20001
19975
  }
20002
19976
  };
20003
- var installFilters = function (Vue, options) {
20004
- var filters = Cypress._.get(options, 'extensions.filters');
19977
+ const installFilters = (Vue, options) => {
19978
+ const filters = Cypress._.get(options, 'extensions.filters');
20005
19979
  if (Cypress._.isPlainObject(filters)) {
20006
- Object.keys(filters).forEach(function (name) {
19980
+ Object.keys(filters).forEach((name) => {
20007
19981
  Vue.filter(name, filters[name]);
20008
19982
  });
20009
19983
  }
20010
19984
  };
20011
- var installPlugins = function (Vue, options, props) {
20012
- var plugins = Cypress._.get(props, 'plugins') ||
19985
+ const installPlugins = (Vue, options, props) => {
19986
+ const plugins = Cypress._.get(props, 'plugins') ||
20013
19987
  Cypress._.get(options, 'extensions.use') ||
20014
19988
  Cypress._.get(options, 'extensions.plugins') ||
20015
19989
  [];
20016
19990
  // @ts-ignore
20017
- plugins.forEach(function (p) {
20018
- Array.isArray(p) ? Vue.use.apply(Vue, p) : Vue.use(p);
19991
+ plugins.forEach((p) => {
19992
+ Array.isArray(p) ? Vue.use(...p) : Vue.use(p);
20019
19993
  });
20020
19994
  };
20021
- var installMixins = function (Vue, options) {
20022
- var mixins = Cypress._.get(options, 'extensions.mixin') ||
19995
+ const installMixins = (Vue, options) => {
19996
+ const mixins = Cypress._.get(options, 'extensions.mixin') ||
20023
19997
  Cypress._.get(options, 'extensions.mixins');
20024
19998
  if (Cypress._.isArray(mixins)) {
20025
- mixins.forEach(function (mixin) {
19999
+ mixins.forEach((mixin) => {
20026
20000
  Vue.mixin(mixin);
20027
20001
  });
20028
20002
  }
20029
20003
  };
20030
- var hasStore = function (_a) {
20031
- var store = _a.store;
20032
- return Boolean(store && store._vm);
20033
- };
20034
- var forEachValue = function (obj, fn) {
20035
- return Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
20004
+ const hasStore = ({ store }) => Boolean(store && store._vm);
20005
+ const forEachValue = (obj, fn) => {
20006
+ return Object.keys(obj).forEach((key) => fn(obj[key], key));
20036
20007
  };
20037
- var resetStoreVM = function (Vue, _a) {
20038
- var store = _a.store;
20008
+ const resetStoreVM = (Vue, { store }) => {
20039
20009
  // bind store public getters
20040
20010
  store.getters = {};
20041
- var wrappedGetters = store._wrappedGetters;
20042
- var computed = {};
20043
- forEachValue(wrappedGetters, function (fn, key) {
20011
+ const wrappedGetters = store._wrappedGetters;
20012
+ const computed = {};
20013
+ forEachValue(wrappedGetters, (fn, key) => {
20044
20014
  // use computed to leverage its lazy-caching mechanism
20045
- computed[key] = function () { return fn(store); };
20015
+ computed[key] = () => fn(store);
20046
20016
  Object.defineProperty(store.getters, key, {
20047
- get: function () { return store._vm[key]; },
20017
+ get: () => store._vm[key],
20048
20018
  enumerable: true, // for local getters
20049
20019
  });
20050
20020
  });
@@ -20053,7 +20023,7 @@ var resetStoreVM = function (Vue, _a) {
20053
20023
  data: {
20054
20024
  $$state: store._vm._data.$$state,
20055
20025
  },
20056
- computed: computed,
20026
+ computed,
20057
20027
  });
20058
20028
  return store;
20059
20029
  };
@@ -20064,19 +20034,19 @@ var resetStoreVM = function (Vue, _a) {
20064
20034
  * @see https://github.com/cypress-io/cypress/issues/7910
20065
20035
  */
20066
20036
  function failTestOnVueError(err, vm, info) {
20067
- console.error("Vue error");
20037
+ console.error(`Vue error`);
20068
20038
  console.error(err);
20069
20039
  console.error('component:', vm);
20070
20040
  console.error('info:', info);
20071
20041
  window.top.onerror(err);
20072
20042
  }
20073
20043
  function registerAutoDestroy($destroy) {
20074
- Cypress.on('test:before:run', function () {
20044
+ Cypress.on('test:before:run', () => {
20075
20045
  $destroy();
20076
20046
  });
20077
20047
  }
20078
20048
  enableAutoDestroy_1(registerAutoDestroy);
20079
- var injectStyles = function (options) {
20049
+ const injectStyles = (options) => {
20080
20050
  return injectStylesBeforeElement(options, document, getContainerEl());
20081
20051
  };
20082
20052
  /**
@@ -20090,10 +20060,10 @@ function getComponentDisplayName(componentOptions) {
20090
20060
  return componentOptions.name;
20091
20061
  }
20092
20062
  if (componentOptions.__file) {
20093
- var filepathSplit = componentOptions.__file.split('/');
20094
- var fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
20063
+ const filepathSplit = componentOptions.__file.split('/');
20064
+ const fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
20095
20065
  // remove the extension .js, .ts or .vue from the filename to get the name of the component
20096
- var baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
20066
+ const baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
20097
20067
  // if the filename is index, then we can use the direct parent foldername, else use the name itself
20098
20068
  return (baseFileName === 'index' ? filepathSplit[filepathSplit.length - 2] : baseFileName);
20099
20069
  }
@@ -20112,35 +20082,34 @@ function getComponentDisplayName(componentOptions) {
20112
20082
  * cy.get('#greeting').should('be.visible')
20113
20083
  * })
20114
20084
  */
20115
- var mount = function (component, optionsOrProps) {
20116
- if (optionsOrProps === void 0) { optionsOrProps = {}; }
20117
- var options = Cypress._.pick(optionsOrProps, defaultOptions);
20118
- var props = Cypress._.omit(optionsOrProps, defaultOptions);
20119
- var componentName = getComponentDisplayName(component);
20120
- var message = "<" + componentName + " ... />";
20085
+ const mount = (component, optionsOrProps = {}) => {
20086
+ const options = Cypress._.pick(optionsOrProps, defaultOptions);
20087
+ const props = Cypress._.omit(optionsOrProps, defaultOptions);
20088
+ const componentName = getComponentDisplayName(component);
20089
+ const message = `<${componentName} ... />`;
20121
20090
  return cy
20122
20091
  .window({
20123
20092
  log: false,
20124
20093
  })
20125
- .then(function () {
20126
- var style = optionsOrProps.style, stylesheets = optionsOrProps.stylesheets, stylesheet = optionsOrProps.stylesheet, styles = optionsOrProps.styles, cssFiles = optionsOrProps.cssFiles, cssFile = optionsOrProps.cssFile;
20094
+ .then(() => {
20095
+ const { style, stylesheets, stylesheet, styles, cssFiles, cssFile } = optionsOrProps;
20127
20096
  injectStyles({
20128
- style: style,
20129
- stylesheets: stylesheets,
20130
- stylesheet: stylesheet,
20131
- styles: styles,
20132
- cssFiles: cssFiles,
20133
- cssFile: cssFile,
20097
+ style,
20098
+ stylesheets,
20099
+ stylesheet,
20100
+ styles,
20101
+ cssFiles,
20102
+ cssFile,
20134
20103
  });
20135
20104
  })
20136
- .then(function (win) {
20105
+ .then((win) => {
20137
20106
  if (optionsOrProps.log !== false) {
20138
20107
  Cypress.log({
20139
20108
  name: 'mount',
20140
20109
  message: [message],
20141
20110
  }).snapshot('mounted').end();
20142
20111
  }
20143
- var localVue = createLocalVue_1();
20112
+ const localVue = createLocalVue_1();
20144
20113
  // @ts-ignore
20145
20114
  win.Vue = localVue;
20146
20115
  localVue.config.errorHandler = failTestOnVueError;
@@ -20155,9 +20124,9 @@ var mount = function (component, optionsOrProps) {
20155
20124
  component.store = resetStoreVM(localVue, component);
20156
20125
  }
20157
20126
  // @ts-ignore
20158
- var document = cy.state('document');
20159
- var el = getContainerEl();
20160
- var componentNode = document.createElement('div');
20127
+ const document = cy.state('document');
20128
+ let el = getContainerEl();
20129
+ const componentNode = document.createElement('div');
20161
20130
  el.append(componentNode);
20162
20131
  // setup Vue instance
20163
20132
  installFilters(localVue, options);
@@ -20165,8 +20134,8 @@ var mount = function (component, optionsOrProps) {
20165
20134
  installPlugins(localVue, options, props);
20166
20135
  registerGlobalComponents(localVue, options);
20167
20136
  props.attachTo = componentNode;
20168
- var wrapper = localVue.extend(component);
20169
- var VTUWrapper = mount_1(wrapper, __assign({ localVue: localVue }, props));
20137
+ const wrapper = localVue.extend(component);
20138
+ const VTUWrapper = mount_1(wrapper, Object.assign({ localVue }, props));
20170
20139
  Cypress.vue = VTUWrapper.vm;
20171
20140
  Cypress.vueWrapper = VTUWrapper;
20172
20141
  });
@@ -20177,8 +20146,8 @@ var mount = function (component, optionsOrProps) {
20177
20146
  * import {mountCallback} from '@cypress/vue2'
20178
20147
  * beforeEach(mountVue(component, options))
20179
20148
  */
20180
- var mountCallback = function (component, options) {
20181
- return function () { return mount(component, options); };
20149
+ const mountCallback = (component, options) => {
20150
+ return () => mount(component, options);
20182
20151
  };
20183
20152
  // Side effects from "import { mount } from '@cypress/<my-framework>'" are annoying, we should avoid doing this
20184
20153
  // by creating an explicit function/import that the user can register in their 'component.js' support file,