From a19cfe51caeea1ff8616248a581ac32ea69972ae Mon Sep 17 00:00:00 2001 From: WyTiny Date: Wed, 13 Dec 2017 16:18:40 +0800 Subject: [PATCH] [bugfix] disabled property in checkbox (#425) --- packages/checkbox/index.vue | 4 +--- test/unit/components/checkbox.vue | 2 +- test/unit/specs/checkbox.spec.js | 16 ++++++++++++++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/packages/checkbox/index.vue b/packages/checkbox/index.vue index 2d3b51707..6cd3df7ee 100644 --- a/packages/checkbox/index.vue +++ b/packages/checkbox/index.vue @@ -89,9 +89,7 @@ export default create({ }, isDisabled() { - return this.isGroup && this.parentGroup - ? this.parentGroup.disabled - : this.disabled; + return (this.isGroup && this.parentGroup && this.parentGroup.disabled) || this.disabled; } }, diff --git a/test/unit/components/checkbox.vue b/test/unit/components/checkbox.vue index f3d5d7484..0b824248a 100644 --- a/test/unit/components/checkbox.vue +++ b/test/unit/components/checkbox.vue @@ -1,6 +1,6 @@ diff --git a/test/unit/specs/checkbox.spec.js b/test/unit/specs/checkbox.spec.js index c9e1c52fe..110032883 100644 --- a/test/unit/specs/checkbox.spec.js +++ b/test/unit/specs/checkbox.spec.js @@ -66,6 +66,22 @@ describe('CheckboxGroup', () => { done(); }); }); + + it('click on disabled item', (done) => { + wrapper = mount(CheckboxTestComponent); + + const eventStub = sinon.stub(wrapper.vNode.child, '$emit'); + + const disabledLabel = wrapper.find('.van-checkbox')[2].find('.van-checkbox__label')[0]; + disabledLabel.trigger('click'); + + wrapper.update(); + wrapper.vm.$nextTick(() => { + expect(eventStub.calledOnce).to.be.false; + expect(wrapper.vm.result.indexOf('c')).to.equal(-1); + done(); + }); + }); }); describe('Checkbox', () => {