diff --git a/src/components/Select.vue b/src/components/Select.vue index f37d86d..2bc9bbe 100644 --- a/src/components/Select.vue +++ b/src/components/Select.vue @@ -759,9 +759,7 @@ * @return {void} */ select(option) { - if (this.isOptionSelected(option)) { - this.deselect(option) - } else { + if (!this.isOptionSelected(option)) { if (this.taggable && !this.optionExists(option)) { option = this.createOption(option) } @@ -802,9 +800,9 @@ * Clears the currently selected value(s) * @return {void} */ - clearSelection() { - this.mutableValue = this.multiple ? [] : null - }, + clearSelection() { + this.mutableValue = this.multiple ? [] : null + }, /** * Called from this.select after each selection. diff --git a/test/unit/specs/Select.spec.js b/test/unit/specs/Select.spec.js index 8aa1e82..f67dcc5 100644 --- a/test/unit/specs/Select.spec.js +++ b/test/unit/specs/Select.spec.js @@ -117,7 +117,7 @@ describe('Select.vue', () => { options: [{label: 'This is Foo', value: 'foo'}, {label: 'This is Bar', value: 'bar'}] } }).$mount() - vm.$children[0].select({label: 'This is Foo', value: 'foo'}) + vm.$children[0].deselect({label: 'This is Foo', value: 'foo'}) expect(vm.$children[0].mutableValue.length).toEqual(1) }) @@ -129,7 +129,7 @@ describe('Select.vue', () => { options: ['foo','bar'] } }).$mount() - vm.$children[0].select('foo') + vm.$children[0].deselect('foo') expect(vm.$children[0].mutableValue.length).toEqual(1) }), @@ -1090,7 +1090,7 @@ describe('Select.vue', () => { vm.$refs.select.search = 'one' searchSubmit(vm) Vue.nextTick(() => { - expect(vm.$refs.select.mutableValue).toEqual([]) + expect(vm.$refs.select.mutableValue).toEqual(['one']) expect(vm.$refs.select.search).toEqual('') done() }) @@ -1109,7 +1109,7 @@ describe('Select.vue', () => { vm.$refs.select.search = 'one' searchSubmit(vm) Vue.nextTick(() => { - expect(vm.$refs.select.mutableValue).toEqual([]) + expect(vm.$refs.select.mutableValue).toEqual(['one']) expect(vm.$refs.select.search).toEqual('') done() })