mirror of
https://github.com/tenrok/vue-select.git
synced 2026-05-17 02:29:37 +03:00
98c278b2bb
BREAKING: mixins are no longer exported from the index (and will likely be converted to hooks)
67 lines
1.8 KiB
JavaScript
Executable File
67 lines
1.8 KiB
JavaScript
Executable File
import { it, describe, expect } from 'vitest'
|
|
import { selectWithProps } from '@tests/helpers.js'
|
|
import { shallowMount } from '@vue/test-utils'
|
|
import vSelect from '@/components/Select.vue'
|
|
|
|
describe('Asynchronous Loading', () => {
|
|
it('can toggle the loading class', () => {
|
|
const Select = selectWithProps()
|
|
|
|
Select.vm.toggleLoading()
|
|
expect(Select.vm.mutableLoading).toEqual(true)
|
|
|
|
Select.vm.toggleLoading(true)
|
|
expect(Select.vm.mutableLoading).toEqual(true)
|
|
})
|
|
|
|
it('should trigger the search event when the search text changes', async () => {
|
|
const Select = selectWithProps()
|
|
|
|
Select.vm.search = 'foo'
|
|
await Select.vm.$nextTick()
|
|
|
|
const events = Select.emitted('search')
|
|
|
|
expect(events).toContainEqual(['foo', Select.vm.toggleLoading])
|
|
expect(events.length).toEqual(1)
|
|
})
|
|
|
|
it('should trigger the search event if the search text is empty', async () => {
|
|
const Select = selectWithProps()
|
|
|
|
Select.vm.search = 'foo'
|
|
await Select.vm.$nextTick()
|
|
Select.vm.search = ''
|
|
await Select.vm.$nextTick()
|
|
|
|
const events = Select.emitted('search')
|
|
|
|
expect(events).toContainEqual(['', Select.vm.toggleLoading])
|
|
expect(events.length).toEqual(2)
|
|
})
|
|
|
|
it('can set loading to false from the @search event callback', async () => {
|
|
const Select = shallowMount(vSelect, {
|
|
props: {
|
|
onSearch: (search, loading) => {
|
|
loading(false)
|
|
},
|
|
},
|
|
})
|
|
|
|
Select.vm.mutableLoading = true
|
|
Select.vm.search = 'foo'
|
|
await Select.vm.$nextTick()
|
|
|
|
expect(Select.vm.mutableLoading).toEqual(false)
|
|
})
|
|
|
|
it('will sync mutable loading with the loading prop', async () => {
|
|
const Select = selectWithProps({ loading: false })
|
|
Select.setProps({ loading: true })
|
|
await Select.vm.$nextTick()
|
|
|
|
expect(Select.vm.mutableLoading).toEqual(true)
|
|
})
|
|
})
|