import McadLockBtn from '@/components/navigation/mcad/McadLockBtn.vue'; import { useViewer3cr } from '@/composables/useViewer3cr'; import { DataOverlayMcadFaker } from '@test/fakers/data-overlay-mcad.faker'; import { mount } from '@vue/test-utils'; import { cloneDeep } from 'lodash'; import { VBtn } from 'vuetify/components'; describe('McadLockBtn tests', () => { const viewer3cr = useViewer3cr(); const mcad = DataOverlayMcadFaker.random(); const props = { mcad }; const lockMcadSpy = vi.spyOn(viewer3cr, 'lockMcad').mockResolvedValue(); it('should mount', () => { const wrapper = mount(McadLockBtn, { props }); expect(wrapper).toBeTruthy(); }); it('should toggle', async () => { const localProps = cloneDeep(props); localProps.mcad.Locked = true; const wrapper = mount(McadLockBtn, { props: localProps }); const button = wrapper.findComponent(VBtn); await button.trigger('click'); expect(lockMcadSpy).toHaveBeenCalled(); }); it('should toggle desc', async () => { const localProps = cloneDeep(props); localProps.mcad.Locked = false; const wrapper = mount(McadLockBtn, { props: localProps }); const button = wrapper.findComponent(VBtn); await button.trigger('click'); expect(lockMcadSpy).toHaveBeenCalled(); }); });