import { flushPromises, mount } from '@vue/test-utils'; import { VBtn } from 'vuetify/components'; import { DataOverlayMcadFaker } from '@test/fakers/data-overlay-mcad.faker'; import { useViewer3cr } from '@/composables/useViewer3cr'; import McadToggleVisibilityBtn from '@/components/navigation/mcad/McadToggleVisibilityBtn.vue'; import { useMcadStore } from '@/stores/mcad.store'; import { storeToRefs } from 'pinia'; describe('McadToggleVisibilityBtn tests', () => { const viewer3cr = useViewer3cr(); const mcad = DataOverlayMcadFaker.random(); it('should mount', () => { const wrapper = mount(McadToggleVisibilityBtn); expect(wrapper).toBeTruthy(); }); it('should toggle', async () => { const { mcads } = storeToRefs(useMcadStore()); mcads.value.push(mcad); const spy = vi.spyOn(viewer3cr, 'setMcadObjectVisibility'); const wrapper = mount(McadToggleVisibilityBtn); const button = wrapper.findComponent(VBtn); await button.trigger('click'); await flushPromises(); expect(spy).toHaveBeenCalled(); }); it('should be not visible', async () => { const { mcads } = storeToRefs(useMcadStore()); mcad.Visibility = false; mcads.value.push(mcad); const wrapper = mount(McadToggleVisibilityBtn); const button = wrapper.findComponent(VBtn); expect(button.html()).toContain('labels.showAll'); }); it('should be visible', async () => { const { mcads } = storeToRefs(useMcadStore()); mcad.Visibility = true; mcads.value.push(mcad); const wrapper = mount(McadToggleVisibilityBtn); const button = wrapper.findComponent(VBtn); expect(button.html()).toContain('visibility'); }); });