import { flushPromises, mount } from '@vue/test-utils'; import { VCard, VOverlay } from 'vuetify/components'; import { useViewer3cr } from '@/composables/useViewer3cr'; import { DataOverlayMcadFaker } from '@test/fakers/data-overlay-mcad.faker'; import { beforeEach } from '@vitest/runner'; import McadDeleteModal from '@/components/navigation/mcad/McadDeleteModal.vue'; describe('McadDeleteModal tests', () => { const viewer3cr = useViewer3cr(); const mcad = DataOverlayMcadFaker.random(); const removeMcadObjectSpy = vi.spyOn(viewer3cr, 'removeMcadObject'); beforeEach(() => { removeMcadObjectSpy.mockClear(); }); it('should mount', () => { const props = { mcad }; const wrapper = mount(McadDeleteModal, { props }); expect(wrapper).toBeTruthy(); }); it('should mount open', () => { const props = { mcad, modelValue: true }; const wrapper = mount(McadDeleteModal, { props }); expect(wrapper).toBeTruthy(); expect(wrapper.findComponent(VCard).exists()).toBe(true); }); it('should mount open then close on btn click', async () => { const props = { mcad, modelValue: true }; const wrapper = mount(McadDeleteModal, { props }); expect(wrapper).toBeTruthy(); expect(wrapper.findComponent(VCard).exists()).toBe(true); const close = wrapper.findComponentByTestId('close'); await close.trigger('click'); await flushPromises(); expect((wrapper.vm as any).modal).toStrictEqual(false); }); it('should mount delete item', async () => { const props = { mcad, modelValue: true }; const wrapper = mount(McadDeleteModal, { props }); expect(wrapper).toBeTruthy(); expect(wrapper.findComponent(VCard).exists()).toBe(true); const close = wrapper.findComponentByTestId('delete'); await close.trigger('click'); await flushPromises(); expect(removeMcadObjectSpy).toHaveBeenCalled(); }); it('should Update overlay', async () => { const props = { mcad, modelValue: false }; const wrapper = mount(McadDeleteModal, { props }); const overlay = wrapper.findComponent(VOverlay); await overlay.setValue(true); expect(overlay.isVisible()).toBeTruthy(); }); });