primevue-mirror/components/splitbutton/SplitButton.spec.js

59 lines
1.9 KiB
JavaScript

import { mount } from '@vue/test-utils';
import PrimeVue from '@/components/config/PrimeVue';
import SplitButton from './SplitButton.vue';
describe('SplitButton.vue', () => {
let wrapper;
beforeEach(async () => {
wrapper = mount(SplitButton, {
global: {
plugins: [PrimeVue],
stubs: {
teleport: true,
'router-link': true
}
},
props: {
label: 'Save',
model: [
{
label: 'Update',
icon: 'pi pi-refresh'
},
{
label: 'Delete',
icon: 'pi pi-times'
},
{
label: 'Vue Website',
icon: 'pi pi-external-link',
command: () => {
window.location.href = 'https://vuejs.org/'
}
},
{ label: 'Upload',
icon: 'pi pi-upload',
to: '/fileupload'
}
]
}
});
await wrapper.vm.onDropdownButtonClick();
});
it('should exist', () => {
expect(wrapper.find('.p-splitbutton.p-component').exists()).toBe(true);
expect(wrapper.find('.p-tieredmenu.p-component').exists()).toBe(true);
expect(wrapper.findAll('li.p-menuitem').length).toBe(4);
expect(wrapper.find('.p-splitbutton-defaultbutton').exists()).toBe(true);
expect(wrapper.find('.p-button-label').text()).toBe('Save');
});
it('should hide when default button is clicked', async () => {
await wrapper.vm.onDefaultButtonClick();
expect(wrapper.find('.p-tieredmenu.p-component').exists()).toBe(false);
});
});