import { createLocalVue, mount, RefSelector, Wrapper } from '@vue/test-utils';
import Vue, { VueConstructor } from 'vue';
import { addMessages } from '../../../../tests/helpers/lang';
import FilePlugin from '../../../utils/file/file';
import { AVATAR_NAME, ICON_BUTTON_NAME } from '../../component-names';
import { MImageDisplayer } from './image-displayer';
const REF_DELETE_BUTTON: RefSelector = { ref: 'deleteButton' };
const getStubs: any = () => {
return {
[AVATAR_NAME]: '
',
[ICON_BUTTON_NAME]: ''
};
};
describe('MImageDisplayer', () => {
let localVue: VueConstructor;
let wrapper: Wrapper;
beforeEach(() => {
localVue = createLocalVue();
localVue.use(FilePlugin);
addMessages(localVue, ['components/photo-editor/photo-editor.lang.en.json']);
wrapper = mount(MImageDisplayer, {
localVue,
stubs: getStubs(),
propsData: {
urlPhoto: 'url.com'
}
});
});
describe(`when canceling`, () => {
it('should manage the event "click" to delete the image', async () => {
wrapper.setMethods({ deleteImage: jest.fn() });
wrapper.find(REF_DELETE_BUTTON).vm.$emit('click');
expect(wrapper.vm.deleteImage).toHaveBeenCalledWith();
});
it(`should emit delete-image`, () => {
wrapper.vm.deleteImage();
expect(wrapper.emitted('delete-image')).toBeDefined();
});
});
});