55 lines
1.6 KiB
JavaScript
55 lines
1.6 KiB
JavaScript
import { mount } from '@vue/test-utils';
|
|
import ToggleButton from './ToggleButton.vue';
|
|
|
|
describe('ToggleButton', () => {
|
|
let wrapper;
|
|
|
|
beforeEach(() => {
|
|
wrapper = mount(ToggleButton, {
|
|
props: {
|
|
modelValue: false,
|
|
onIcon: 'pi pi-check',
|
|
offIcon: 'pi pi-times'
|
|
}
|
|
});
|
|
});
|
|
|
|
it('is ToggleButton exist', () => {
|
|
expect(wrapper.find('.p-togglebutton.p-component').exists()).toBe(true);
|
|
expect(wrapper.find('span.pi-times.p-button-icon').exists()).toBe(true);
|
|
});
|
|
|
|
it('should have onIcon', async () => {
|
|
await wrapper.setProps({ modelValue: true });
|
|
|
|
expect(wrapper.find('span.pi-check').exists()).toBe(true);
|
|
});
|
|
|
|
it('should click works', async () => {
|
|
await wrapper.vm.onClick({});
|
|
|
|
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([true]);
|
|
|
|
await wrapper.setProps({ modelValue: true });
|
|
await wrapper.vm.onClick({});
|
|
|
|
expect(wrapper.emitted()['update:modelValue'][1]).toEqual([false]);
|
|
});
|
|
|
|
it('should be customized', async () => {
|
|
await wrapper.setProps({
|
|
modelValue: true,
|
|
onLabel: 'I confirm',
|
|
offLabel: 'I reject',
|
|
style: 'width: 10em'
|
|
});
|
|
|
|
expect(wrapper.find('.p-button-label').text()).toBe('I confirm');
|
|
expect(wrapper.attributes().style).toContain('width: 10em');
|
|
|
|
await wrapper.setProps({ modelValue: false });
|
|
|
|
expect(wrapper.find('.p-button-label').text()).toBe('I reject');
|
|
});
|
|
});
|