import { flushPromises, mount } from '@vue/test-utils'; import { VBtn, VSnackbar } from 'vuetify/components'; import MeasurementDeleteSnackbar from '@/components/navigation/measurement/MeasurementDeleteSnackbar.vue'; import { DataOverlayPolygonFaker } from '@test/fakers/data-overlay-polygon.faker'; import { useViewer3cr } from '@/composables/useViewer3cr'; describe('MeasurementDeleteSnackbar tests', () => { it('should mount', async () => { const wrapper = mount(MeasurementDeleteSnackbar, { props: { measurement: DataOverlayPolygonFaker.random(), }, }); await flushPromises(); expect(wrapper).toBeTruthy(); }); it('should open MeasurementDeleteSnackbar', async () => { const wrapper = mount(MeasurementDeleteSnackbar, { props: { measurement: DataOverlayPolygonFaker.random(), }, }); const snack = wrapper.findComponent(VSnackbar); await snack.setValue(true); expect(snack.isVisible()).toBe(true); }); it('should close MeasurementDeleteSnackbar', async () => { const viewer3cr = useViewer3cr(); const createAnnotationSpy = vi.spyOn(viewer3cr, 'createAnnotation'); const wrapper = mount(MeasurementDeleteSnackbar, { props: { measurement: DataOverlayPolygonFaker.random(), }, }); const snack = wrapper.findComponent(VSnackbar); await snack.setValue(true); expect(snack.isVisible()).toBe(true); const vbtn = snack.findComponent(VBtn); await vbtn.trigger('click'); expect(createAnnotationSpy).toHaveBeenCalled(); }); });