import { flushPromises, mount } from '@vue/test-utils'; import { VSlider } from 'vuetify/components'; import VerticalSliderSelector from '@/components/shared/VerticalSliderSelector.vue'; describe('VerticalSliderSelector.vue', () => { const props = { value: 0 }; let wrapper = mount(VerticalSliderSelector, { props }); beforeEach(() => { wrapper = mount(VerticalSliderSelector, { props }); vi.useFakeTimers(); }); afterEach(() => { vi.useRealTimers(); }); it('should inflate component', () => { expect(wrapper).toBeTruthy(); }); it('should change from props', async () => { await wrapper.setProps({ value: 1, }); await flushPromises(); expect(wrapper.vm.value).toStrictEqual(1); }); it('should timeout the thumb', async () => { await wrapper.setProps({ value: 1 }); const slider = wrapper.findComponent(VSlider); await flushPromises(); expect(wrapper.vm.value).toStrictEqual(1); await wrapper.setProps({ value: 1 }); vi.advanceTimersByTime(999); expect(slider.vm.thumbLabel).toBe('always'); vi.advanceTimersByTime(1); await flushPromises(); expect(wrapper.vm.value).toStrictEqual(1); expect(slider.vm.thumbLabel).toBe(false); }); it('should set slider value', async () => { const slider = wrapper.findComponent('.v-slider'); await slider.setValue(1); }); });