Commit cf77cdba authored by Filipa Lacerda's avatar Filipa Lacerda

Adds unit tests for discussion component

parent 3e92f44f
...@@ -179,7 +179,7 @@ ...@@ -179,7 +179,7 @@
v-if="canReply && !isReplying" v-if="canReply && !isReplying"
@click="showReplyForm" @click="showReplyForm"
type="button" type="button"
class="btn btn-text-field" class="js-vue-discussion-reply btn btn-text-field"
title="Add a reply">Reply...</button> title="Add a reply">Reply...</button>
<issue-note-form <issue-note-form
v-if="isReplying" v-if="isReplying"
......
import Vue from 'vue';
import store from '~/notes/stores';
import issueDiscussion from '~/notes/components/issue_discussion.vue';
import { issueDataMock, discussionMock, notesDataMock } from '../mock_data';
describe('issue_discussion component', () => { describe('issue_discussion component', () => {
it('should render user avatar', () => { let vm;
});
it('should render discussion header', () => {
}); beforeEach(() => {
const Component = Vue.extend(issueDiscussion);
describe('updated note', () => { store.dispatch('setIssueData', issueDataMock);
it('should show information about update', () => { store.dispatch('setNotesData', notesDataMock);
}); vm = new Component({
store,
propsData: {
note: discussionMock,
},
}).$mount();
}); });
describe('with open discussion', () => { afterEach(() => {
it('should render system note', () => { vm.$destroy();
}); });
it('should render placeholder note', () => { it('should render user avatar', () => {
expect(vm.$el.querySelector('.user-avatar-link')).toBeDefined();
}); });
it('should render regular note', () => { it('should render discussion header', () => {
expect(vm.$el.querySelector('.discussion-header')).toBeDefined();
expect(vm.$el.querySelectorAll('.notes li').length).toEqual(discussionMock.notes.length);
}); });
describe('actions', () => { describe('actions', () => {
it('should render reply button', () => { it('should render reply button', () => {
expect(vm.$el.querySelector('.js-vue-discussion-reply').textContent.trim()).toEqual('Reply...');
}); });
it('should toggle reply form', () => { it('should toggle reply form', (done) => {
vm.$el.querySelector('.js-vue-discussion-reply').click();
}); Vue.nextTick(() => {
expect(vm.$refs.noteForm).toBeDefined();
it('should render signout widget when user is logged out', () => { expect(vm.isReplying).toEqual(true);
done();
}); });
}); });
}); });
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment