2
0
mirror of https://github.com/tenrok/vue-select.git synced 2026-05-23 03:54:04 +03:00
Files
vue-select/tests/unit/Selectable.spec.js
T
Jeff Sagal 06177a4d24 feat: Vue 3 Support (#1344)
BREAKING CHANGE: drop vue 2 support
2021-10-19 18:53:22 -07:00

58 lines
1.5 KiB
JavaScript

import { selectWithProps } from '../helpers'
describe('Selectable prop', () => {
it('should select selectable option if clicked', async () => {
const Select = selectWithProps({
options: ['one', 'two', 'three'],
selectable: (option) => option === 'one',
})
Select.vm.open = true
await Select.vm.$nextTick()
await Select.find('.vs__dropdown-menu li:first-child').trigger('click')
expect(Select.vm.selectedValue).toEqual(['one'])
})
it('should not select not selectable option if clicked', async () => {
const Select = selectWithProps({
options: ['one', 'two', 'three'],
selectable: (option) => option === 'one',
})
Select.vm.open = true
await Select.vm.$nextTick()
await Select.find('.vs__dropdown-menu li:last-child').trigger('click')
expect(Select.vm.selectedValue).toEqual([])
})
it('should skip non-selectable option on down arrow keyDown', async () => {
const Select = selectWithProps({
options: ['one', 'two', 'three'],
selectable: (option) => option !== 'two',
})
Select.vm.typeAheadPointer = 1
await Select.get('input').trigger('keydown.down')
expect(Select.vm.typeAheadPointer).toEqual(2)
})
it('should skip non-selectable option on up arrow keyDown', async () => {
const Select = selectWithProps({
options: ['one', 'two', 'three'],
selectable: (option) => option !== 'two',
})
Select.vm.typeAheadPointer = 2
await Select.get('input').trigger('keydown.up')
expect(Select.vm.typeAheadPointer).toEqual(0)
})
})