diff --git a/src/components/Select.vue b/src/components/Select.vue index 540ff25..74adea0 100644 --- a/src/components/Select.vue +++ b/src/components/Select.vue @@ -874,7 +874,7 @@ */ toggleDropdown(e) { if (e.target === this.$refs.openIndicator || e.target === this.$refs.search || e.target === this.$refs.toggle || - e.target === this.$refs.selectedOptions || e.target === this.$el) { + e.target.classList.contains('selected-tag') || e.target === this.$el) { if (this.open) { this.$refs.search.blur() // dropdown will close on blur } else { diff --git a/test/unit/specs/Select.spec.js b/test/unit/specs/Select.spec.js index 2bb9697..891f849 100644 --- a/test/unit/specs/Select.spec.js +++ b/test/unit/specs/Select.spec.js @@ -403,6 +403,26 @@ describe('Select.vue', () => { }) }) + it('should open the dropdown when the selected tag is clicked', (done) => { + const vm = new Vue({ + template: '
', + components: {vSelect}, + data: { + value: [{label: 'one'}], + options: [{label: 'one'}] + } + }).$mount() + + const selectedTag = vm.$children[0].$el.getElementsByClassName('selected-tag')[0] + vm.$children[0].toggleDropdown({target: selectedTag}) + Vue.nextTick(() => { + Vue.nextTick(() => { + expect(vm.$children[0].open).toEqual(true) + done() + }) + }) + }) + it('can close the dropdown when the el is clicked', (done) => { const vm = new Vue({ template: '
',