diff --git a/packages/server-test-utils/dist/vue-server-test-utils.js b/packages/server-test-utils/dist/vue-server-test-utils.js index 19b5777a3..f4fd23e77 100644 --- a/packages/server-test-utils/dist/vue-server-test-utils.js +++ b/packages/server-test-utils/dist/vue-server-test-utils.js @@ -1885,7 +1885,7 @@ function vmMatchesName(vm, name) { // We want to mirror how Vue resolves component names in SFCs: // For example, , and ` // all resolve to the same component - var componentName = (vm.$options && vm.$options.name) || ''; + var componentName = vm.name || (vm.$options && vm.$options.name) || ''; return ( !!name && (componentName === name || @@ -1931,13 +1931,7 @@ function matches(node, selector) { return element && element.matches && element.matches(selector.value) } - var isFunctionalSelector = isConstructor(selector.value) - ? selector.value.options.functional - : selector.value.functional; - - var componentInstance = isFunctionalSelector - ? node[FUNCTIONAL_OPTIONS] - : node.child; + var componentInstance = node[FUNCTIONAL_OPTIONS] || node.child; if (!componentInstance) { return false @@ -9358,11 +9352,43 @@ var modifiers = { pagedown: 34 }; +// get from https://github.com/ashubham/w3c-keys/blob/master/index.ts +var w3cKeys = { + enter: 'Enter', + tab: 'Tab', + delete: 'Delete', + esc: 'Esc', + escape: 'Escape', + space: ' ', + up: 'Up', + left: 'Left', + right: 'Right', + down: 'Down', + end: 'End', + home: 'Home', + backspace: 'Backspace', + insert: 'Insert', + pageup: 'PageUp', + pagedown: 'PageDown' +}; + +var codeToKeyNameMap = Object.entries(modifiers).reduce( + function (acc, ref) { + var obj; + + var key = ref[0]; + var value = ref[1]; + return Object.assign(acc, ( obj = {}, obj[value] = w3cKeys[key], obj )); +}, + {} +); + function getOptions(eventParams) { var modifier = eventParams.modifier; var meta = eventParams.meta; var options = eventParams.options; var keyCode = modifiers[modifier] || options.keyCode || options.code; + var key = codeToKeyNameMap[keyCode]; return Object.assign({}, options, // What the user passed in as the second argument to #trigger @@ -9371,7 +9397,8 @@ function getOptions(eventParams) { // Any derived options should go here keyCode: keyCode, - code: keyCode}) + code: keyCode, + key: key}) } function createEvent(eventParams) { @@ -9613,7 +9640,7 @@ Wrapper.prototype.emittedByOrder = function emittedByOrder () { }; /** - * Utility to check wrapper exists. Returns true as Wrapper always exists + * Utility to check wrapper exists. */ Wrapper.prototype.exists = function exists () { if (this.vm) { @@ -10251,6 +10278,35 @@ Wrapper.prototype.text = function text () { return this.element.textContent.trim() }; +/** + * Simulates event triggering + */ +Wrapper.prototype.__simulateTrigger = function __simulateTrigger (type, options) { + var this$1 = this; + + var regularEventTrigger = function (type, options) { + var event = createDOMEvent(type, options); + return this$1.element.dispatchEvent(event) + }; + + var focusEventTrigger = function (type, options) { + if (this$1.element instanceof HTMLElement) { + return this$1.element.focus() + } + + regularEventTrigger(type, options); + }; + + var triggerProcedureMap = { + focus: focusEventTrigger, + __default: regularEventTrigger + }; + + var triggerFn = triggerProcedureMap[type] || triggerProcedureMap.__default; + + return triggerFn(type, options) +}; + /** * Dispatches a DOM event on wrapper */ @@ -10293,8 +10349,7 @@ Wrapper.prototype.trigger = function trigger (type, options) { return nextTick() } - var event = createDOMEvent(type, options); - this.element.dispatchEvent(event); + this.__simulateTrigger(type, options); return nextTick() }; @@ -12877,7 +12932,7 @@ function _createLocalVue( instance.config = cloneDeep_1(Vue__default['default'].config); // if a user defined errorHandler is defined by a localVue instance via createLocalVue, register it - instance.config.errorHandler = config.errorHandler || Vue__default['default'].config.errorHandler; + instance.config.errorHandler = config.errorHandler; // option merge strategies need to be exposed by reference // so that merge strats registered by plugins can work properly diff --git a/packages/test-utils/dist/vue-test-utils.iife.js b/packages/test-utils/dist/vue-test-utils.iife.js index 67c2e9047..64456e3fc 100644 --- a/packages/test-utils/dist/vue-test-utils.iife.js +++ b/packages/test-utils/dist/vue-test-utils.iife.js @@ -2690,7 +2690,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { // We want to mirror how Vue resolves component names in SFCs: // For example, , and ` // all resolve to the same component - var componentName = (vm.$options && vm.$options.name) || ''; + var componentName = vm.name || (vm.$options && vm.$options.name) || ''; return ( !!name && (componentName === name || @@ -2736,13 +2736,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { return element && element.matches && element.matches(selector.value) } - var isFunctionalSelector = isConstructor(selector.value) - ? selector.value.options.functional - : selector.value.functional; - - var componentInstance = isFunctionalSelector - ? node[FUNCTIONAL_OPTIONS] - : node.child; + var componentInstance = node[FUNCTIONAL_OPTIONS] || node.child; if (!componentInstance) { return false @@ -10262,11 +10256,43 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { pagedown: 34 }; + // get from https://github.com/ashubham/w3c-keys/blob/master/index.ts + var w3cKeys = { + enter: 'Enter', + tab: 'Tab', + delete: 'Delete', + esc: 'Esc', + escape: 'Escape', + space: ' ', + up: 'Up', + left: 'Left', + right: 'Right', + down: 'Down', + end: 'End', + home: 'Home', + backspace: 'Backspace', + insert: 'Insert', + pageup: 'PageUp', + pagedown: 'PageDown' + }; + + var codeToKeyNameMap = Object.entries(modifiers).reduce( + function (acc, ref) { + var obj; + + var key = ref[0]; + var value = ref[1]; + return Object.assign(acc, ( obj = {}, obj[value] = w3cKeys[key], obj )); + }, + {} + ); + function getOptions(eventParams) { var modifier = eventParams.modifier; var meta = eventParams.meta; var options = eventParams.options; var keyCode = modifiers[modifier] || options.keyCode || options.code; + var key = codeToKeyNameMap[keyCode]; return Object.assign({}, options, // What the user passed in as the second argument to #trigger @@ -10275,7 +10301,8 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { // Any derived options should go here keyCode: keyCode, - code: keyCode}) + code: keyCode, + key: key}) } function createEvent(eventParams) { @@ -10517,7 +10544,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { }; /** - * Utility to check wrapper exists. Returns true as Wrapper always exists + * Utility to check wrapper exists. */ Wrapper.prototype.exists = function exists () { if (this.vm) { @@ -11155,6 +11182,35 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { return this.element.textContent.trim() }; + /** + * Simulates event triggering + */ + Wrapper.prototype.__simulateTrigger = function __simulateTrigger (type, options) { + var this$1 = this; + + var regularEventTrigger = function (type, options) { + var event = createDOMEvent(type, options); + return this$1.element.dispatchEvent(event) + }; + + var focusEventTrigger = function (type, options) { + if (this$1.element instanceof HTMLElement) { + return this$1.element.focus() + } + + regularEventTrigger(type, options); + }; + + var triggerProcedureMap = { + focus: focusEventTrigger, + __default: regularEventTrigger + }; + + var triggerFn = triggerProcedureMap[type] || triggerProcedureMap.__default; + + return triggerFn(type, options) + }; + /** * Dispatches a DOM event on wrapper */ @@ -11197,8 +11253,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { return nextTick() } - var event = createDOMEvent(type, options); - this.element.dispatchEvent(event); + this.__simulateTrigger(type, options); return nextTick() }; @@ -13818,7 +13873,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { instance.config = cloneDeep_1(Vue__default['default'].config); // if a user defined errorHandler is defined by a localVue instance via createLocalVue, register it - instance.config.errorHandler = config.errorHandler || Vue__default['default'].config.errorHandler; + instance.config.errorHandler = config.errorHandler; // option merge strategies need to be exposed by reference // so that merge strats registered by plugins can work properly @@ -14051,6 +14106,7 @@ var VueTestUtils = (function (exports, Vue, vueTemplateCompiler) { return shallowMount(component, options) } + exports.ErrorWrapper = ErrorWrapper; exports.RouterLinkStub = RouterLinkStub; exports.Wrapper = Wrapper; exports.WrapperArray = WrapperArray; diff --git a/packages/test-utils/dist/vue-test-utils.js b/packages/test-utils/dist/vue-test-utils.js index 68a02ffd1..c46b8a0d7 100644 --- a/packages/test-utils/dist/vue-test-utils.js +++ b/packages/test-utils/dist/vue-test-utils.js @@ -2694,7 +2694,7 @@ function vmMatchesName(vm, name) { // We want to mirror how Vue resolves component names in SFCs: // For example, , and ` // all resolve to the same component - var componentName = (vm.$options && vm.$options.name) || ''; + var componentName = vm.name || (vm.$options && vm.$options.name) || ''; return ( !!name && (componentName === name || @@ -2740,13 +2740,7 @@ function matches(node, selector) { return element && element.matches && element.matches(selector.value) } - var isFunctionalSelector = isConstructor(selector.value) - ? selector.value.options.functional - : selector.value.functional; - - var componentInstance = isFunctionalSelector - ? node[FUNCTIONAL_OPTIONS] - : node.child; + var componentInstance = node[FUNCTIONAL_OPTIONS] || node.child; if (!componentInstance) { return false @@ -10266,11 +10260,43 @@ var modifiers = { pagedown: 34 }; +// get from https://github.com/ashubham/w3c-keys/blob/master/index.ts +var w3cKeys = { + enter: 'Enter', + tab: 'Tab', + delete: 'Delete', + esc: 'Esc', + escape: 'Escape', + space: ' ', + up: 'Up', + left: 'Left', + right: 'Right', + down: 'Down', + end: 'End', + home: 'Home', + backspace: 'Backspace', + insert: 'Insert', + pageup: 'PageUp', + pagedown: 'PageDown' +}; + +var codeToKeyNameMap = Object.entries(modifiers).reduce( + function (acc, ref) { + var obj; + + var key = ref[0]; + var value = ref[1]; + return Object.assign(acc, ( obj = {}, obj[value] = w3cKeys[key], obj )); +}, + {} +); + function getOptions(eventParams) { var modifier = eventParams.modifier; var meta = eventParams.meta; var options = eventParams.options; var keyCode = modifiers[modifier] || options.keyCode || options.code; + var key = codeToKeyNameMap[keyCode]; return Object.assign({}, options, // What the user passed in as the second argument to #trigger @@ -10279,7 +10305,8 @@ function getOptions(eventParams) { // Any derived options should go here keyCode: keyCode, - code: keyCode}) + code: keyCode, + key: key}) } function createEvent(eventParams) { @@ -10521,7 +10548,7 @@ Wrapper.prototype.emittedByOrder = function emittedByOrder () { }; /** - * Utility to check wrapper exists. Returns true as Wrapper always exists + * Utility to check wrapper exists. */ Wrapper.prototype.exists = function exists () { if (this.vm) { @@ -11159,6 +11186,35 @@ Wrapper.prototype.text = function text () { return this.element.textContent.trim() }; +/** + * Simulates event triggering + */ +Wrapper.prototype.__simulateTrigger = function __simulateTrigger (type, options) { + var this$1 = this; + + var regularEventTrigger = function (type, options) { + var event = createDOMEvent(type, options); + return this$1.element.dispatchEvent(event) + }; + + var focusEventTrigger = function (type, options) { + if (this$1.element instanceof HTMLElement) { + return this$1.element.focus() + } + + regularEventTrigger(type, options); + }; + + var triggerProcedureMap = { + focus: focusEventTrigger, + __default: regularEventTrigger + }; + + var triggerFn = triggerProcedureMap[type] || triggerProcedureMap.__default; + + return triggerFn(type, options) +}; + /** * Dispatches a DOM event on wrapper */ @@ -11201,8 +11257,7 @@ Wrapper.prototype.trigger = function trigger (type, options) { return nextTick() } - var event = createDOMEvent(type, options); - this.element.dispatchEvent(event); + this.__simulateTrigger(type, options); return nextTick() }; @@ -13822,7 +13877,7 @@ function _createLocalVue( instance.config = cloneDeep_1(Vue__default['default'].config); // if a user defined errorHandler is defined by a localVue instance via createLocalVue, register it - instance.config.errorHandler = config.errorHandler || Vue__default['default'].config.errorHandler; + instance.config.errorHandler = config.errorHandler; // option merge strategies need to be exposed by reference // so that merge strats registered by plugins can work properly @@ -14055,6 +14110,7 @@ function shallow(component, options) { return shallowMount(component, options) } +exports.ErrorWrapper = ErrorWrapper; exports.RouterLinkStub = RouterLinkStub; exports.Wrapper = Wrapper; exports.WrapperArray = WrapperArray; diff --git a/packages/test-utils/dist/vue-test-utils.umd.js b/packages/test-utils/dist/vue-test-utils.umd.js index d2e307fbd..86b90f1f7 100644 --- a/packages/test-utils/dist/vue-test-utils.umd.js +++ b/packages/test-utils/dist/vue-test-utils.umd.js @@ -2693,7 +2693,7 @@ // We want to mirror how Vue resolves component names in SFCs: // For example, , and ` // all resolve to the same component - var componentName = (vm.$options && vm.$options.name) || ''; + var componentName = vm.name || (vm.$options && vm.$options.name) || ''; return ( !!name && (componentName === name || @@ -2739,13 +2739,7 @@ return element && element.matches && element.matches(selector.value) } - var isFunctionalSelector = isConstructor(selector.value) - ? selector.value.options.functional - : selector.value.functional; - - var componentInstance = isFunctionalSelector - ? node[FUNCTIONAL_OPTIONS] - : node.child; + var componentInstance = node[FUNCTIONAL_OPTIONS] || node.child; if (!componentInstance) { return false @@ -10265,11 +10259,43 @@ pagedown: 34 }; + // get from https://github.com/ashubham/w3c-keys/blob/master/index.ts + var w3cKeys = { + enter: 'Enter', + tab: 'Tab', + delete: 'Delete', + esc: 'Esc', + escape: 'Escape', + space: ' ', + up: 'Up', + left: 'Left', + right: 'Right', + down: 'Down', + end: 'End', + home: 'Home', + backspace: 'Backspace', + insert: 'Insert', + pageup: 'PageUp', + pagedown: 'PageDown' + }; + + var codeToKeyNameMap = Object.entries(modifiers).reduce( + function (acc, ref) { + var obj; + + var key = ref[0]; + var value = ref[1]; + return Object.assign(acc, ( obj = {}, obj[value] = w3cKeys[key], obj )); + }, + {} + ); + function getOptions(eventParams) { var modifier = eventParams.modifier; var meta = eventParams.meta; var options = eventParams.options; var keyCode = modifiers[modifier] || options.keyCode || options.code; + var key = codeToKeyNameMap[keyCode]; return Object.assign({}, options, // What the user passed in as the second argument to #trigger @@ -10278,7 +10304,8 @@ // Any derived options should go here keyCode: keyCode, - code: keyCode}) + code: keyCode, + key: key}) } function createEvent(eventParams) { @@ -10520,7 +10547,7 @@ }; /** - * Utility to check wrapper exists. Returns true as Wrapper always exists + * Utility to check wrapper exists. */ Wrapper.prototype.exists = function exists () { if (this.vm) { @@ -11158,6 +11185,35 @@ return this.element.textContent.trim() }; + /** + * Simulates event triggering + */ + Wrapper.prototype.__simulateTrigger = function __simulateTrigger (type, options) { + var this$1 = this; + + var regularEventTrigger = function (type, options) { + var event = createDOMEvent(type, options); + return this$1.element.dispatchEvent(event) + }; + + var focusEventTrigger = function (type, options) { + if (this$1.element instanceof HTMLElement) { + return this$1.element.focus() + } + + regularEventTrigger(type, options); + }; + + var triggerProcedureMap = { + focus: focusEventTrigger, + __default: regularEventTrigger + }; + + var triggerFn = triggerProcedureMap[type] || triggerProcedureMap.__default; + + return triggerFn(type, options) + }; + /** * Dispatches a DOM event on wrapper */ @@ -11200,8 +11256,7 @@ return nextTick() } - var event = createDOMEvent(type, options); - this.element.dispatchEvent(event); + this.__simulateTrigger(type, options); return nextTick() }; @@ -13821,7 +13876,7 @@ instance.config = cloneDeep_1(Vue__default['default'].config); // if a user defined errorHandler is defined by a localVue instance via createLocalVue, register it - instance.config.errorHandler = config.errorHandler || Vue__default['default'].config.errorHandler; + instance.config.errorHandler = config.errorHandler; // option merge strategies need to be exposed by reference // so that merge strats registered by plugins can work properly @@ -14054,6 +14109,7 @@ return shallowMount(component, options) } + exports.ErrorWrapper = ErrorWrapper; exports.RouterLinkStub = RouterLinkStub; exports.Wrapper = Wrapper; exports.WrapperArray = WrapperArray;