33 lines
995 B
JavaScript
33 lines
995 B
JavaScript
import { shallowMount } from '@vue/test-utils';
|
|
import ContextMenu from '../../../../src/components/ContextMenu';
|
|
import store from '../../../../src/store';
|
|
import '../specUtils';
|
|
|
|
const mount = () => shallowMount(ContextMenu, { store });
|
|
|
|
describe('ContextMenu.vue', () => {
|
|
const name = 'Name';
|
|
const makeOptions = () => ({
|
|
coordinates: {
|
|
left: 0,
|
|
top: 0,
|
|
},
|
|
items: [{ name }],
|
|
});
|
|
|
|
it('should open/close itself', async () => {
|
|
const wrapper = mount();
|
|
expect(wrapper.contains('.context-menu__item')).toEqual(false);
|
|
setTimeout(() => wrapper.find('.context-menu__item').trigger('click'), 1);
|
|
const item = await store.dispatch('contextMenu/open', makeOptions());
|
|
expect(item.name).toEqual(name);
|
|
});
|
|
|
|
it('should cancel itself', async () => {
|
|
const wrapper = mount();
|
|
setTimeout(() => wrapper.trigger('click'), 1);
|
|
const item = await store.dispatch('contextMenu/open', makeOptions());
|
|
expect(item).toEqual(null);
|
|
});
|
|
});
|