63 lines
1.5 KiB
JavaScript
63 lines
1.5 KiB
JavaScript
import Vuex from 'vuex';
|
|
import { mount, createLocalVue } from '@vue/test-utils';
|
|
import { createStore } from '~/ide/stores';
|
|
import EditorHeader from '~/ide/components/commit_sidebar/editor_header.vue';
|
|
import { file } from '../../helpers';
|
|
|
|
const localVue = createLocalVue();
|
|
localVue.use(Vuex);
|
|
|
|
describe('IDE commit editor header', () => {
|
|
let wrapper;
|
|
let f;
|
|
let store;
|
|
|
|
const findDiscardModal = () => wrapper.find({ ref: 'discardModal' });
|
|
const findDiscardButton = () => wrapper.find({ ref: 'discardButton' });
|
|
|
|
beforeEach(() => {
|
|
f = file('file');
|
|
store = createStore();
|
|
|
|
wrapper = mount(EditorHeader, {
|
|
store,
|
|
localVue,
|
|
propsData: {
|
|
activeFile: f,
|
|
},
|
|
});
|
|
|
|
jest.spyOn(wrapper.vm, 'discardChanges').mockImplementation();
|
|
});
|
|
|
|
afterEach(() => {
|
|
wrapper.destroy();
|
|
wrapper = null;
|
|
});
|
|
|
|
it('renders button to discard', () => {
|
|
expect(wrapper.vm.$el.querySelectorAll('.btn')).toHaveLength(1);
|
|
});
|
|
|
|
describe('discard button', () => {
|
|
let modal;
|
|
|
|
beforeEach(() => {
|
|
modal = findDiscardModal();
|
|
|
|
jest.spyOn(modal.vm, 'show');
|
|
|
|
findDiscardButton().trigger('click');
|
|
});
|
|
|
|
it('opens a dialog confirming discard', () => {
|
|
expect(modal.vm.show).toHaveBeenCalled();
|
|
});
|
|
|
|
it('calls discardFileChanges if dialog result is confirmed', () => {
|
|
modal.vm.$emit('ok');
|
|
|
|
expect(wrapper.vm.discardChanges).toHaveBeenCalledWith(f.path);
|
|
});
|
|
});
|
|
});
|