cypress 10.6.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.
- package/angular/CHANGELOG.md +31 -0
- package/angular/README.md +43 -112
- package/angular/dist/index.js +8 -6
- package/angular/dist/mount.d.ts +1 -0
- package/angular/package.json +6 -8
- package/mount-utils/package.json +5 -1
- package/package.json +10 -4
- package/react/dist/createMount.d.ts +5 -2
- package/react/dist/cypress-react.cjs.js +80 -115
- package/react/dist/cypress-react.esm-bundler.js +66 -101
- package/react/dist/mount.d.ts +1 -0
- package/react/dist/mountHook.d.ts +1 -0
- package/react/dist/types.d.ts +1 -0
- package/react/package.json +2 -6
- package/react18/dist/cypress-react.cjs.js +59 -88
- package/react18/dist/cypress-react.esm-bundler.js +45 -74
- package/react18/dist/index.d.ts +1 -0
- package/react18/package.json +2 -2
- package/svelte/CHANGELOG.md +0 -0
- package/svelte/README.md +83 -0
- package/svelte/dist/cypress-svelte.cjs.js +213 -0
- package/svelte/dist/cypress-svelte.esm-bundler.js +209 -0
- package/svelte/dist/index.d.ts +1 -0
- package/svelte/dist/mount.d.ts +30 -0
- package/svelte/package.json +43 -0
- package/types/cypress-type-helpers.d.ts +3 -1
- package/types/cypress.d.ts +43 -4
- package/vue/dist/cypress-vue.cjs.js +30 -38
- package/vue/dist/cypress-vue.esm-bundler.js +30 -38
- package/vue/dist/index.d.ts +1 -0
- package/vue/package.json +2 -7
- package/vue2/dist/cypress-vue2.cjs.js +53 -84
- package/vue2/dist/cypress-vue2.esm-bundler.js +53 -84
- package/vue2/dist/index.d.ts +1 -0
- package/vue2/package.json +2 -5
- package/vue2/dist/cypress-vue2.browser.js +0 -20197
package/vue/dist/index.d.ts
CHANGED
@@ -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.
|
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",
|
@@ -16,8 +16,6 @@
|
|
16
16
|
},
|
17
17
|
"devDependencies": {
|
18
18
|
"@cypress/mount-utils": "0.0.0-development",
|
19
|
-
"@rollup/plugin-commonjs": "^17.1.0",
|
20
|
-
"@rollup/plugin-node-resolve": "^11.1.1",
|
21
19
|
"@vitejs/plugin-vue": "2.3.1",
|
22
20
|
"@vue/compiler-sfc": "3.2.31",
|
23
21
|
"@vue/test-utils": "2.0.2",
|
@@ -25,11 +23,8 @@
|
|
25
23
|
"cypress": "0.0.0-development",
|
26
24
|
"debug": "^4.3.2",
|
27
25
|
"globby": "^11.0.1",
|
28
|
-
"rollup": "^2.38.5",
|
29
|
-
"rollup-plugin-istanbul": "2.0.1",
|
30
|
-
"rollup-plugin-typescript2": "^0.29.0",
|
31
26
|
"tailwindcss": "1.1.4",
|
32
|
-
"typescript": "^4.
|
27
|
+
"typescript": "^4.7.4",
|
33
28
|
"vite": "3.0.3",
|
34
29
|
"vue": "3.2.31",
|
35
30
|
"vue-i18n": "9.0.0-rc.6",
|
@@ -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
|
-
|
19964
|
+
const defaultOptions = [
|
19991
19965
|
'vue',
|
19992
19966
|
'extensions',
|
19993
19967
|
];
|
19994
|
-
|
19995
|
-
|
19996
|
-
|
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,
|
19972
|
+
Cypress._.forEach(globalComponents, (component, id) => {
|
19999
19973
|
Vue.component(id, component);
|
20000
19974
|
});
|
20001
19975
|
}
|
20002
19976
|
};
|
20003
|
-
|
20004
|
-
|
19977
|
+
const installFilters = (Vue, options) => {
|
19978
|
+
const filters = Cypress._.get(options, 'extensions.filters');
|
20005
19979
|
if (Cypress._.isPlainObject(filters)) {
|
20006
|
-
Object.keys(filters).forEach(
|
19980
|
+
Object.keys(filters).forEach((name) => {
|
20007
19981
|
Vue.filter(name, filters[name]);
|
20008
19982
|
});
|
20009
19983
|
}
|
20010
19984
|
};
|
20011
|
-
|
20012
|
-
|
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(
|
20018
|
-
Array.isArray(p) ? Vue.use
|
19991
|
+
plugins.forEach((p) => {
|
19992
|
+
Array.isArray(p) ? Vue.use(...p) : Vue.use(p);
|
20019
19993
|
});
|
20020
19994
|
};
|
20021
|
-
|
20022
|
-
|
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(
|
19999
|
+
mixins.forEach((mixin) => {
|
20026
20000
|
Vue.mixin(mixin);
|
20027
20001
|
});
|
20028
20002
|
}
|
20029
20003
|
};
|
20030
|
-
|
20031
|
-
|
20032
|
-
return
|
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
|
-
|
20038
|
-
var store = _a.store;
|
20008
|
+
const resetStoreVM = (Vue, { store }) => {
|
20039
20009
|
// bind store public getters
|
20040
20010
|
store.getters = {};
|
20041
|
-
|
20042
|
-
|
20043
|
-
forEachValue(wrappedGetters,
|
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] =
|
20015
|
+
computed[key] = () => fn(store);
|
20046
20016
|
Object.defineProperty(store.getters, key, {
|
20047
|
-
get:
|
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
|
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(
|
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',
|
20044
|
+
Cypress.on('test:before:run', () => {
|
20075
20045
|
$destroy();
|
20076
20046
|
});
|
20077
20047
|
}
|
20078
20048
|
enableAutoDestroy_1(registerAutoDestroy);
|
20079
|
-
|
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
|
-
|
20094
|
-
|
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
|
-
|
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
|
-
|
20116
|
-
|
20117
|
-
|
20118
|
-
|
20119
|
-
|
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(
|
20126
|
-
|
20094
|
+
.then(() => {
|
20095
|
+
const { style, stylesheets, stylesheet, styles, cssFiles, cssFile } = optionsOrProps;
|
20127
20096
|
injectStyles({
|
20128
|
-
style
|
20129
|
-
stylesheets
|
20130
|
-
stylesheet
|
20131
|
-
styles
|
20132
|
-
cssFiles
|
20133
|
-
cssFile
|
20097
|
+
style,
|
20098
|
+
stylesheets,
|
20099
|
+
stylesheet,
|
20100
|
+
styles,
|
20101
|
+
cssFiles,
|
20102
|
+
cssFile,
|
20134
20103
|
});
|
20135
20104
|
})
|
20136
|
-
.then(
|
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
|
-
|
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
|
-
|
20159
|
-
|
20160
|
-
|
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
|
-
|
20169
|
-
|
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
|
-
|
20181
|
-
return
|
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,
|
@@ -7,32 +7,6 @@
|
|
7
7
|
|
8
8
|
import require$$0$1 from 'vue';
|
9
9
|
|
10
|
-
/******************************************************************************
|
11
|
-
Copyright (c) Microsoft Corporation.
|
12
|
-
|
13
|
-
Permission to use, copy, modify, and/or distribute this software for any
|
14
|
-
purpose with or without fee is hereby granted.
|
15
|
-
|
16
|
-
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
|
17
|
-
REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
|
18
|
-
AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
|
19
|
-
INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
|
20
|
-
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
21
|
-
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
22
|
-
PERFORMANCE OF THIS SOFTWARE.
|
23
|
-
***************************************************************************** */
|
24
|
-
|
25
|
-
var __assign = function() {
|
26
|
-
__assign = Object.assign || function __assign(t) {
|
27
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
28
|
-
s = arguments[i];
|
29
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
|
30
|
-
}
|
31
|
-
return t;
|
32
|
-
};
|
33
|
-
return __assign.apply(this, arguments);
|
34
|
-
};
|
35
|
-
|
36
10
|
var commonjsGlobal$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
|
37
11
|
|
38
12
|
function createCommonjsModule$1(fn) {
|
@@ -19979,64 +19953,60 @@ function setupHooks(optionalCallback) {
|
|
19979
19953
|
});
|
19980
19954
|
}
|
19981
19955
|
|
19982
|
-
|
19956
|
+
const defaultOptions = [
|
19983
19957
|
'vue',
|
19984
19958
|
'extensions',
|
19985
19959
|
];
|
19986
|
-
|
19987
|
-
|
19988
|
-
|
19960
|
+
const DEFAULT_COMP_NAME = 'unknown';
|
19961
|
+
const registerGlobalComponents = (Vue, options) => {
|
19962
|
+
const globalComponents = Cypress._.get(options, 'extensions.components');
|
19989
19963
|
if (Cypress._.isPlainObject(globalComponents)) {
|
19990
|
-
Cypress._.forEach(globalComponents,
|
19964
|
+
Cypress._.forEach(globalComponents, (component, id) => {
|
19991
19965
|
Vue.component(id, component);
|
19992
19966
|
});
|
19993
19967
|
}
|
19994
19968
|
};
|
19995
|
-
|
19996
|
-
|
19969
|
+
const installFilters = (Vue, options) => {
|
19970
|
+
const filters = Cypress._.get(options, 'extensions.filters');
|
19997
19971
|
if (Cypress._.isPlainObject(filters)) {
|
19998
|
-
Object.keys(filters).forEach(
|
19972
|
+
Object.keys(filters).forEach((name) => {
|
19999
19973
|
Vue.filter(name, filters[name]);
|
20000
19974
|
});
|
20001
19975
|
}
|
20002
19976
|
};
|
20003
|
-
|
20004
|
-
|
19977
|
+
const installPlugins = (Vue, options, props) => {
|
19978
|
+
const plugins = Cypress._.get(props, 'plugins') ||
|
20005
19979
|
Cypress._.get(options, 'extensions.use') ||
|
20006
19980
|
Cypress._.get(options, 'extensions.plugins') ||
|
20007
19981
|
[];
|
20008
19982
|
// @ts-ignore
|
20009
|
-
plugins.forEach(
|
20010
|
-
Array.isArray(p) ? Vue.use
|
19983
|
+
plugins.forEach((p) => {
|
19984
|
+
Array.isArray(p) ? Vue.use(...p) : Vue.use(p);
|
20011
19985
|
});
|
20012
19986
|
};
|
20013
|
-
|
20014
|
-
|
19987
|
+
const installMixins = (Vue, options) => {
|
19988
|
+
const mixins = Cypress._.get(options, 'extensions.mixin') ||
|
20015
19989
|
Cypress._.get(options, 'extensions.mixins');
|
20016
19990
|
if (Cypress._.isArray(mixins)) {
|
20017
|
-
mixins.forEach(
|
19991
|
+
mixins.forEach((mixin) => {
|
20018
19992
|
Vue.mixin(mixin);
|
20019
19993
|
});
|
20020
19994
|
}
|
20021
19995
|
};
|
20022
|
-
|
20023
|
-
|
20024
|
-
return
|
20025
|
-
};
|
20026
|
-
var forEachValue = function (obj, fn) {
|
20027
|
-
return Object.keys(obj).forEach(function (key) { return fn(obj[key], key); });
|
19996
|
+
const hasStore = ({ store }) => Boolean(store && store._vm);
|
19997
|
+
const forEachValue = (obj, fn) => {
|
19998
|
+
return Object.keys(obj).forEach((key) => fn(obj[key], key));
|
20028
19999
|
};
|
20029
|
-
|
20030
|
-
var store = _a.store;
|
20000
|
+
const resetStoreVM = (Vue, { store }) => {
|
20031
20001
|
// bind store public getters
|
20032
20002
|
store.getters = {};
|
20033
|
-
|
20034
|
-
|
20035
|
-
forEachValue(wrappedGetters,
|
20003
|
+
const wrappedGetters = store._wrappedGetters;
|
20004
|
+
const computed = {};
|
20005
|
+
forEachValue(wrappedGetters, (fn, key) => {
|
20036
20006
|
// use computed to leverage its lazy-caching mechanism
|
20037
|
-
computed[key] =
|
20007
|
+
computed[key] = () => fn(store);
|
20038
20008
|
Object.defineProperty(store.getters, key, {
|
20039
|
-
get:
|
20009
|
+
get: () => store._vm[key],
|
20040
20010
|
enumerable: true, // for local getters
|
20041
20011
|
});
|
20042
20012
|
});
|
@@ -20045,7 +20015,7 @@ var resetStoreVM = function (Vue, _a) {
|
|
20045
20015
|
data: {
|
20046
20016
|
$$state: store._vm._data.$$state,
|
20047
20017
|
},
|
20048
|
-
computed
|
20018
|
+
computed,
|
20049
20019
|
});
|
20050
20020
|
return store;
|
20051
20021
|
};
|
@@ -20056,19 +20026,19 @@ var resetStoreVM = function (Vue, _a) {
|
|
20056
20026
|
* @see https://github.com/cypress-io/cypress/issues/7910
|
20057
20027
|
*/
|
20058
20028
|
function failTestOnVueError(err, vm, info) {
|
20059
|
-
console.error(
|
20029
|
+
console.error(`Vue error`);
|
20060
20030
|
console.error(err);
|
20061
20031
|
console.error('component:', vm);
|
20062
20032
|
console.error('info:', info);
|
20063
20033
|
window.top.onerror(err);
|
20064
20034
|
}
|
20065
20035
|
function registerAutoDestroy($destroy) {
|
20066
|
-
Cypress.on('test:before:run',
|
20036
|
+
Cypress.on('test:before:run', () => {
|
20067
20037
|
$destroy();
|
20068
20038
|
});
|
20069
20039
|
}
|
20070
20040
|
enableAutoDestroy_1(registerAutoDestroy);
|
20071
|
-
|
20041
|
+
const injectStyles = (options) => {
|
20072
20042
|
return injectStylesBeforeElement(options, document, getContainerEl());
|
20073
20043
|
};
|
20074
20044
|
/**
|
@@ -20082,10 +20052,10 @@ function getComponentDisplayName(componentOptions) {
|
|
20082
20052
|
return componentOptions.name;
|
20083
20053
|
}
|
20084
20054
|
if (componentOptions.__file) {
|
20085
|
-
|
20086
|
-
|
20055
|
+
const filepathSplit = componentOptions.__file.split('/');
|
20056
|
+
const fileName = (_a = filepathSplit[filepathSplit.length - 1]) !== null && _a !== void 0 ? _a : DEFAULT_COMP_NAME;
|
20087
20057
|
// remove the extension .js, .ts or .vue from the filename to get the name of the component
|
20088
|
-
|
20058
|
+
const baseFileName = fileName.replace(/\.(js|ts|vue)?$/, '');
|
20089
20059
|
// if the filename is index, then we can use the direct parent foldername, else use the name itself
|
20090
20060
|
return (baseFileName === 'index' ? filepathSplit[filepathSplit.length - 2] : baseFileName);
|
20091
20061
|
}
|
@@ -20104,35 +20074,34 @@ function getComponentDisplayName(componentOptions) {
|
|
20104
20074
|
* cy.get('#greeting').should('be.visible')
|
20105
20075
|
* })
|
20106
20076
|
*/
|
20107
|
-
|
20108
|
-
|
20109
|
-
|
20110
|
-
|
20111
|
-
|
20112
|
-
var message = "<" + componentName + " ... />";
|
20077
|
+
const mount = (component, optionsOrProps = {}) => {
|
20078
|
+
const options = Cypress._.pick(optionsOrProps, defaultOptions);
|
20079
|
+
const props = Cypress._.omit(optionsOrProps, defaultOptions);
|
20080
|
+
const componentName = getComponentDisplayName(component);
|
20081
|
+
const message = `<${componentName} ... />`;
|
20113
20082
|
return cy
|
20114
20083
|
.window({
|
20115
20084
|
log: false,
|
20116
20085
|
})
|
20117
|
-
.then(
|
20118
|
-
|
20086
|
+
.then(() => {
|
20087
|
+
const { style, stylesheets, stylesheet, styles, cssFiles, cssFile } = optionsOrProps;
|
20119
20088
|
injectStyles({
|
20120
|
-
style
|
20121
|
-
stylesheets
|
20122
|
-
stylesheet
|
20123
|
-
styles
|
20124
|
-
cssFiles
|
20125
|
-
cssFile
|
20089
|
+
style,
|
20090
|
+
stylesheets,
|
20091
|
+
stylesheet,
|
20092
|
+
styles,
|
20093
|
+
cssFiles,
|
20094
|
+
cssFile,
|
20126
20095
|
});
|
20127
20096
|
})
|
20128
|
-
.then(
|
20097
|
+
.then((win) => {
|
20129
20098
|
if (optionsOrProps.log !== false) {
|
20130
20099
|
Cypress.log({
|
20131
20100
|
name: 'mount',
|
20132
20101
|
message: [message],
|
20133
20102
|
}).snapshot('mounted').end();
|
20134
20103
|
}
|
20135
|
-
|
20104
|
+
const localVue = createLocalVue_1();
|
20136
20105
|
// @ts-ignore
|
20137
20106
|
win.Vue = localVue;
|
20138
20107
|
localVue.config.errorHandler = failTestOnVueError;
|
@@ -20147,9 +20116,9 @@ var mount = function (component, optionsOrProps) {
|
|
20147
20116
|
component.store = resetStoreVM(localVue, component);
|
20148
20117
|
}
|
20149
20118
|
// @ts-ignore
|
20150
|
-
|
20151
|
-
|
20152
|
-
|
20119
|
+
const document = cy.state('document');
|
20120
|
+
let el = getContainerEl();
|
20121
|
+
const componentNode = document.createElement('div');
|
20153
20122
|
el.append(componentNode);
|
20154
20123
|
// setup Vue instance
|
20155
20124
|
installFilters(localVue, options);
|
@@ -20157,8 +20126,8 @@ var mount = function (component, optionsOrProps) {
|
|
20157
20126
|
installPlugins(localVue, options, props);
|
20158
20127
|
registerGlobalComponents(localVue, options);
|
20159
20128
|
props.attachTo = componentNode;
|
20160
|
-
|
20161
|
-
|
20129
|
+
const wrapper = localVue.extend(component);
|
20130
|
+
const VTUWrapper = mount_1(wrapper, Object.assign({ localVue }, props));
|
20162
20131
|
Cypress.vue = VTUWrapper.vm;
|
20163
20132
|
Cypress.vueWrapper = VTUWrapper;
|
20164
20133
|
});
|
@@ -20169,8 +20138,8 @@ var mount = function (component, optionsOrProps) {
|
|
20169
20138
|
* import {mountCallback} from '@cypress/vue2'
|
20170
20139
|
* beforeEach(mountVue(component, options))
|
20171
20140
|
*/
|
20172
|
-
|
20173
|
-
return
|
20141
|
+
const mountCallback = (component, options) => {
|
20142
|
+
return () => mount(component, options);
|
20174
20143
|
};
|
20175
20144
|
// Side effects from "import { mount } from '@cypress/<my-framework>'" are annoying, we should avoid doing this
|
20176
20145
|
// by creating an explicit function/import that the user can register in their 'component.js' support file,
|
package/vue2/dist/index.d.ts
CHANGED
package/vue2/package.json
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
"main": "dist/cypress-vue2.cjs.js",
|
6
6
|
"scripts": {
|
7
7
|
"typecheck": "tsc --noEmit",
|
8
|
-
"build": "rimraf dist && yarn rollup -c rollup.config.
|
8
|
+
"build": "rimraf dist && yarn rollup -c rollup.config.mjs",
|
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\"",
|
@@ -17,13 +17,10 @@
|
|
17
17
|
},
|
18
18
|
"devDependencies": {
|
19
19
|
"@cypress/mount-utils": "0.0.0-development",
|
20
|
-
"@rollup/plugin-commonjs": "^17.1.0",
|
21
20
|
"@rollup/plugin-json": "^4.1.0",
|
22
|
-
"@rollup/plugin-node-resolve": "^11.1.1",
|
23
21
|
"@rollup/plugin-replace": "^2.3.1",
|
24
|
-
"rollup-plugin-typescript2": "^0.29.0",
|
25
22
|
"tslib": "^2.1.0",
|
26
|
-
"typescript": "^4.
|
23
|
+
"typescript": "^4.7.4",
|
27
24
|
"vue": "2.6.12"
|
28
25
|
},
|
29
26
|
"peerDependencies": {
|