import { mount } from '@vue/test-utils'; import PrimeVue from '@/components/config/PrimeVue'; import AutoComplete from './AutoComplete.vue'; describe('AutoComplete.vue', () => { let wrapper; beforeEach(async () => { wrapper = mount(AutoComplete, { global: { plugins: [PrimeVue], stubs: { teleport: true } }, props: { suggestions: null, field: 'name' }, data() { return { countries: [ { name: 'Afghanistan', code: 'AF' }, { name: 'Bahrain', code: 'BH' }, { name: 'Chile', code: 'CL' }, { name: 'Denmark', code: 'DK' } ] }; } }); await wrapper.trigger('click'); }); it('should exists', () => { expect(wrapper.find('.p-autocomplete.p-component').exists()).toBe(true); expect(wrapper.find('.p-autocomplete-input').exists()).toBe(true); }); it('search copmlete', async () => { const event = { target: { value: 'b' } }; wrapper.vm.onInput(event); await wrapper.vm.$nextTick(); wrapper.vm.search(event, event.target.value, 'input'); await wrapper.vm.$nextTick(); await wrapper.setProps({ suggestions: [{ name: 'Bahrain', code: 'BH' }] }); expect(wrapper.find('.p-autocomplete-items').exists()).toBe(true); expect(wrapper.findAll('.p-autocomplete-item').length).toBe(1); }); });