92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
|
import { mount } from '@vue/test-utils';
|
||
|
import RadioButton from './RadioButton.vue';
|
||
|
|
||
|
describe('RadioButton.vue', () => {
|
||
|
let wrapper;
|
||
|
|
||
|
beforeEach(() => {
|
||
|
wrapper = mount(RadioButton, {
|
||
|
props: {
|
||
|
value: 'Tatooine',
|
||
|
modelValue: null
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('shoukd exist', () => {
|
||
|
expect(wrapper.find('.p-radiobutton.p-component').exists()).toBe(true);
|
||
|
expect(wrapper.find('input').attributes().type).toBe('radio');
|
||
|
});
|
||
|
|
||
|
it('When disabled true and onClick triggered click emit should not be called', async () => {
|
||
|
await wrapper.setProps({ disabled: true });
|
||
|
await wrapper.vm.onClick();
|
||
|
|
||
|
expect(wrapper.emitted()['click']).toEqual(undefined);
|
||
|
expect(wrapper.emitted()['update:modelValue']).toEqual(undefined);
|
||
|
});
|
||
|
|
||
|
it('When disabled false and onClick triggered click emit should be called', async () => {
|
||
|
await wrapper.vm.onClick();
|
||
|
|
||
|
expect(wrapper.emitted()['update:modelValue'].length).toEqual(1);
|
||
|
expect(wrapper.emitted().change.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
it('When value and modelValue equal and onClick triggered change emit should not be called', async () => {
|
||
|
await wrapper.setProps({ modelValue: 'test', value: 'test' });
|
||
|
await wrapper.vm.onClick();
|
||
|
|
||
|
expect(wrapper.emitted()['change']).toEqual(undefined);
|
||
|
});
|
||
|
|
||
|
it('When modelValue changed, Checked should be effected', async () => {
|
||
|
await wrapper.setProps({ modelValue: 'Tatooine' });
|
||
|
|
||
|
expect(wrapper.vm.checked).toBe(true);
|
||
|
expect(wrapper.find('.p-radiobutton').classes()).toContain('p-radiobutton-checked');
|
||
|
});
|
||
|
|
||
|
it('When component cliked OnClick method should be called', async () => {
|
||
|
const spy = vi.spyOn(wrapper.vm, 'onClick');
|
||
|
|
||
|
await wrapper.find('.p-radiobutton').trigger('click');
|
||
|
|
||
|
expect(spy).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it('When component focused onFocus method should be called', async () => {
|
||
|
await wrapper.setProps({ inputId: 'test' });
|
||
|
|
||
|
const spy = vi.spyOn(wrapper.vm, 'onFocus');
|
||
|
|
||
|
await wrapper.find('#test').trigger('focus');
|
||
|
|
||
|
expect(spy).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it('When onFocus method triggered, false should be true', async () => {
|
||
|
await wrapper.vm.onFocus();
|
||
|
|
||
|
expect(wrapper.vm.focused).toBeTruthy();
|
||
|
expect(wrapper.emitted().focus.length).toEqual(1);
|
||
|
});
|
||
|
|
||
|
it('When component blur onBlur method should be called', async () => {
|
||
|
await wrapper.setProps({ inputId: 'test' });
|
||
|
|
||
|
const blurSpy = vi.spyOn(wrapper.vm, 'onBlur');
|
||
|
|
||
|
await wrapper.find('#test').trigger('blur');
|
||
|
|
||
|
expect(blurSpy).toHaveBeenCalled();
|
||
|
});
|
||
|
|
||
|
it('When onBlur method triggered, false should be false', async () => {
|
||
|
await wrapper.vm.onBlur();
|
||
|
|
||
|
expect(wrapper.vm.focus).toBeFalsy();
|
||
|
expect(wrapper.emitted().blur.length).toEqual(1);
|
||
|
});
|
||
|
});
|