From 427781bd28ccb77bc21ada8bf829bedc87119c63 Mon Sep 17 00:00:00 2001 From: eddyerburgh <edward.yerburgh@gmail.com> Date: Sun, 11 Feb 2018 10:01:53 +0000 Subject: [PATCH 1/2] fix: don't fire event on disabled element --- src/wrappers/wrapper.js | 5 +++++ test/specs/wrapper/trigger.spec.js | 15 +++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/src/wrappers/wrapper.js b/src/wrappers/wrapper.js index efc9fc730..bf1b6ec3f 100644 --- a/src/wrappers/wrapper.js +++ b/src/wrappers/wrapper.js @@ -522,6 +522,11 @@ export default class Wrapper implements BaseWrapper { throwError('you cannot set the target value of an event. See the notes section of the docs for more details—https://vue-test-utils.vuejs.org/en/api/wrapper/trigger.html') } + // Don't fire event on a disabled element + if(this.attributes().disabled) { + return + } + const modifiers = { enter: 13, tab: 9, diff --git a/test/specs/wrapper/trigger.spec.js b/test/specs/wrapper/trigger.spec.js index c2c42c634..90e516fe4 100644 --- a/test/specs/wrapper/trigger.spec.js +++ b/test/specs/wrapper/trigger.spec.js @@ -93,6 +93,21 @@ describeWithShallowAndMount('trigger', (mountingMethod) => { expect(clickHandler.calledOnce).to.equal(true) }) + it('does not fire on disabled elements', () => { + const clickHandler = sinon.stub() + const TestComponent = { + template: '<button disabled @click="clickHandler"/>', + props: ['clickHandler'] + } + const wrapper = mountingMethod(TestComponent, { + propsData: { + clickHandler + } + }) + wrapper.trigger('click') + expect(clickHandler.called).to.equal(false) + }) + it('handles .prevent', () => { const TestComponent = { template: '<input @keydown.enter.prevent="enter">' From 5ee68dbae28924b632781bd2a2fd9cb28817f7c7 Mon Sep 17 00:00:00 2001 From: eddyerburgh <edward.yerburgh@gmail.com> Date: Sun, 11 Feb 2018 10:26:07 +0000 Subject: [PATCH 2/2] fix: linting error --- src/wrappers/wrapper.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wrappers/wrapper.js b/src/wrappers/wrapper.js index bf1b6ec3f..3851a50fc 100644 --- a/src/wrappers/wrapper.js +++ b/src/wrappers/wrapper.js @@ -523,7 +523,7 @@ export default class Wrapper implements BaseWrapper { } // Don't fire event on a disabled element - if(this.attributes().disabled) { + if (this.attributes().disabled) { return }