60 lines
1.6 KiB
JavaScript
60 lines
1.6 KiB
JavaScript
|
import { mount } from '@vue/test-utils';
|
||
|
import Knob from './Knob.vue';
|
||
|
|
||
|
describe('Knob.vue', () => {
|
||
|
let wrapper;
|
||
|
|
||
|
beforeEach(() => {
|
||
|
wrapper = mount(Knob, {
|
||
|
props: {
|
||
|
modelValue: 20
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
it('should exist', () => {
|
||
|
expect(wrapper.find('.p-knob.p-component').exists()).toBe(true);
|
||
|
expect(wrapper.find('.p-knob-text').text()).toBe('20');
|
||
|
});
|
||
|
|
||
|
it('should change with click event', async () => {
|
||
|
const event = { offsetX: 100, offsetY: 100 };
|
||
|
|
||
|
await wrapper.vm.onClick(event);
|
||
|
|
||
|
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([95]);
|
||
|
});
|
||
|
|
||
|
it('should min - max work', async () => {
|
||
|
await wrapper.setProps({ min: -50, max: 50 });
|
||
|
|
||
|
const event = { offsetX: 100, offsetY: 100 };
|
||
|
|
||
|
await wrapper.vm.onClick(event);
|
||
|
|
||
|
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([45]);
|
||
|
});
|
||
|
|
||
|
it('should step work', async () => {
|
||
|
await wrapper.setProps({ step: 10 });
|
||
|
|
||
|
const event = { offsetX: 18, offsetY: 30 };
|
||
|
|
||
|
await wrapper.vm.onClick(event);
|
||
|
|
||
|
expect(wrapper.emitted()['update:modelValue'][0]).toEqual([30]);
|
||
|
});
|
||
|
|
||
|
it('should work with string valueTemplate', async () => {
|
||
|
await wrapper.setProps({ valueTemplate: '{value}%' });
|
||
|
|
||
|
expect(wrapper.find('.p-knob-text').text()).toBe('20%');
|
||
|
});
|
||
|
|
||
|
it('should work with function valueTemplate', async () => {
|
||
|
await wrapper.setProps({ valueTemplate: (val) => val * 10 });
|
||
|
|
||
|
expect(wrapper.find('.p-knob-text').text()).toBe('200');
|
||
|
});
|
||
|
});
|