import McadVisibilityBtn from '@/components/navigation/mcad/McadVisibilityBtn.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('McadVisibilityBtn tests', () => { const viewer3cr = useViewer3cr(); const mcad = DataOverlayMcadFaker.random(); const props = { mcad }; it('should mount', () => { const wrapper = mount(McadVisibilityBtn, { props }); expect(wrapper).toBeTruthy(); }); it('should toggle', async () => { const spy = vi.spyOn(viewer3cr, 'setMcadObjectVisibility'); const wrapper = mount(McadVisibilityBtn, { props }); const button = wrapper.findComponent(VBtn); await button.trigger('click'); expect(spy).toHaveBeenCalled(); }); it('should be not visible', async () => { const propsLocal = cloneDeep(props); propsLocal.mcad.Visibility = false; const wrapper = mount(McadVisibilityBtn, { props: propsLocal }); const button = wrapper.findComponent(VBtn); expect(button.html()).toContain('visibility_off'); }); it('should be visible', async () => { const propsLocal = cloneDeep(props); propsLocal.mcad.Visibility = true; const wrapper = mount(McadVisibilityBtn, { props: propsLocal }); const button = wrapper.findComponent(VBtn); expect(button.html()).toContain('visibility'); }); });