diff options
author | Filipa Lacerda <filipa@gitlab.com> | 2017-08-09 14:18:43 +0100 |
---|---|---|
committer | Filipa Lacerda <filipa@gitlab.com> | 2017-08-09 14:18:43 +0100 |
commit | d37881b75f15f407c4078ff98322df97f73199d0 (patch) | |
tree | 4beee7488230a7ee11a421e9ecb1c71cb9513fa1 /spec/javascripts/notes | |
parent | c15174c08692a13fe281e2914490b6b751574e9b (diff) | |
download | gitlab-ce-d37881b75f15f407c4078ff98322df97f73199d0.tar.gz |
[ci skip] Adds unit tests for issue_note_header component
Diffstat (limited to 'spec/javascripts/notes')
-rw-r--r-- | spec/javascripts/notes/components/issue_note_header_spec.js | 85 | ||||
-rw-r--r-- | spec/javascripts/notes/components/issue_placeholder_note_spec.js | 4 |
2 files changed, 86 insertions, 3 deletions
diff --git a/spec/javascripts/notes/components/issue_note_header_spec.js b/spec/javascripts/notes/components/issue_note_header_spec.js index 31c65ed7f43..83ea18508ae 100644 --- a/spec/javascripts/notes/components/issue_note_header_spec.js +++ b/spec/javascripts/notes/components/issue_note_header_spec.js @@ -1,15 +1,94 @@ +import Vue from 'vue'; +import issueNoteHeader from '~/notes/components/issue_note_header.vue'; +import store from '~/notes/stores'; + describe('issue_note_header component', () => { - it('should render user information', () => { + let vm; + let Component; + + beforeEach(() => { + Component = Vue.extend(issueNoteHeader); + }); + afterEach(() => { + vm.$destroy(); }); - it('should render timestamp link', () => { + describe('individual note', () => { + beforeEach(() => { + vm = new Component({ + store, + propsData: { + actionText: 'commented', + actionTextHtml: '', + author: { + avatar_url: null, + id: 1, + name: 'Root', + path: '/root', + state: 'active', + username: 'root', + }, + createdAt: '2017-08-02T10:51:58.559Z', + includeToggle: false, + noteId: 1394, + }, + }).$mount(); + }); + + it('should render user information', () => { + expect( + vm.$el.querySelector('.note-header-author-name').textContent.trim(), + ).toEqual('Root'); + expect( + vm.$el.querySelector('.note-header-info a').getAttribute('href'), + ).toEqual('/root'); + }); + it('should render timestamp link', () => { + expect(vm.$el.querySelector('a[href="#note_1394"]')).toBeDefined(); + }); }); describe('discussion', () => { + beforeEach(() => { + vm = new Component({ + store, + propsData: { + actionText: 'started a discussion', + actionTextHtml: '', + author: { + avatar_url: null, + id: 1, + name: 'Root', + path: '/root', + state: 'active', + username: 'root', + }, + createdAt: '2017-08-02T10:51:58.559Z', + includeToggle: true, + noteId: 1395, + }, + }).$mount(); + }); + it('should render toggle button', () => { + expect(vm.$el.querySelector('.js-vue-toggle-button')).toBeDefined(); + }); + + it('should toggle the disucssion icon', (done) => { + expect( + vm.$el.querySelector('.js-vue-toggle-button i').classList.contains('fa-chevron-up'), + ).toEqual(true); + + vm.$el.querySelector('.js-vue-toggle-button').click(); + Vue.nextTick(() => { + expect( + vm.$el.querySelector('.js-vue-toggle-button i').classList.contains('fa-chevron-down'), + ).toEqual(true); + done(); + }); }); }); -});
\ No newline at end of file +}); diff --git a/spec/javascripts/notes/components/issue_placeholder_note_spec.js b/spec/javascripts/notes/components/issue_placeholder_note_spec.js index 06be26a1a62..6e5275087f3 100644 --- a/spec/javascripts/notes/components/issue_placeholder_note_spec.js +++ b/spec/javascripts/notes/components/issue_placeholder_note_spec.js @@ -15,6 +15,10 @@ describe('issue placeholder system note component', () => { }).$mount(); }); + afterEach(() => { + vm.$destroy(); + }); + describe('user information', () => { it('should render user avatar with link', () => { expect(vm.$el.querySelector('.user-avatar-link').getAttribute('href')).toEqual(userDataMock.path); |