diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-08-11 16:39:16 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-08-11 19:54:58 +0100 |
commit | 3e92f44ff223c9252f7726dcad46a3cb46298001 (patch) | |
tree | 514ff80c859e6014fe98056307c4a5d76301958d | |
parent | e81dd24251c20a89231637b05f04abf9d2e039ea (diff) | |
download | gitlab-ce-3e92f44ff223c9252f7726dcad46a3cb46298001.tar.gz |
Adds unit tests to issue_note_actions component
-rw-r--r-- | spec/javascripts/notes/components/issue_note_actions_spec.js | 70 |
1 files changed, 63 insertions, 7 deletions
diff --git a/spec/javascripts/notes/components/issue_note_actions_spec.js b/spec/javascripts/notes/components/issue_note_actions_spec.js index eb3dc691f18..7bcc061f167 100644 --- a/spec/javascripts/notes/components/issue_note_actions_spec.js +++ b/spec/javascripts/notes/components/issue_note_actions_spec.js @@ -1,35 +1,91 @@ +import Vue from 'vue'; +import store from '~/notes/stores'; +import issueActions from '~/notes/components/issue_note_actions.vue'; +import { userDataMock } from '../mock_data'; + describe('issse_note_actions component', () => { - it('should render access level badge', () => { + let vm; + let Component; + + beforeEach(() => { + Component = Vue.extend(issueActions); + }); + afterEach(() => { + vm.$destroy(); }); describe('user is logged in', () => { - it('should render emoji link', () => { + let props; + + beforeEach(() => { + props = { + accessLevel: 'Master', + authorId: 26, + canDelete: true, + canEdit: true, + canReportAsAbuse: true, + noteId: 539, + reportAbusePath: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_539&user_id=26', + }; + store.dispatch('setUserData', userDataMock); + + vm = new Component({ + store, + propsData: props, + }).$mount(); + }); + + it('should render access level badge', () => { + expect(vm.$el.querySelector('.note-role').textContent.trim()).toEqual(props.accessLevel); + }); + + it('should render emoji link', () => { + expect(vm.$el.querySelector('.js-add-award')).toBeDefined(); }); describe('actions dropdown', () => { it('should be possible to edit the comment', () => { - + expect(vm.$el.querySelector('.js-note-edit')).toBeDefined(); }); it('should be possible to report as abuse', () => { - + expect(vm.$el.querySelector(`a[href="${props.reportAbusePath}"]`)).toBeDefined(); }); it('should be possible to delete comment', () => { - + expect(vm.$el.querySelector('.js-note-delete')).toBeDefined(); }); }); }); describe('user is not logged in', () => { - it('should not render emoji link', () => { + let props; + beforeEach(() => { + store.dispatch('setUserData', {}); + props = { + accessLevel: 'Master', + authorId: 26, + canDelete: false, + canEdit: false, + canReportAsAbuse: false, + noteId: 539, + reportAbusePath: '/abuse_reports/new?ref_url=http%3A%2F%2Flocalhost%3A3000%2Fgitlab-org%2Fgitlab-ce%2Fissues%2F7%23note_539&user_id=26', + }; + vm = new Component({ + store, + propsData: props, + }).$mount(); }); - it('should not render actions dropdown', () => { + it('should not render emoji link', () => { + expect(vm.$el.querySelector('.js-add-award')).toEqual(null); + }); + it('should not render actions dropdown', () => { + expect(vm.$el.querySelector('.more-actions')).toEqual(null); }); }); }); |