diff options
author | Simon Knox <simon@gitlab.com> | 2017-12-04 16:19:07 +0000 |
---|---|---|
committer | Fatih Acet <acetfatih@gmail.com> | 2017-12-04 16:19:07 +0000 |
commit | bf85a90037714c3ba290c9966f435adbfa90b074 (patch) | |
tree | 3fcd899154c11f3e179303cdd341c19cdcdeaaae /spec/javascripts/notes/components/note_header_spec.js | |
parent | a1cd9be42910c89192e82659c09bf0242c8e5dae (diff) | |
download | gitlab-ce-bf85a90037714c3ba290c9966f435adbfa90b074.tar.gz |
issue note component rename
Diffstat (limited to 'spec/javascripts/notes/components/note_header_spec.js')
-rw-r--r-- | spec/javascripts/notes/components/note_header_spec.js | 94 |
1 files changed, 94 insertions, 0 deletions
diff --git a/spec/javascripts/notes/components/note_header_spec.js b/spec/javascripts/notes/components/note_header_spec.js new file mode 100644 index 00000000000..16a76b11321 --- /dev/null +++ b/spec/javascripts/notes/components/note_header_spec.js @@ -0,0 +1,94 @@ +import Vue from 'vue'; +import noteHeader from '~/notes/components/note_header.vue'; +import store from '~/notes/stores'; + +describe('note_header component', () => { + let vm; + let Component; + + beforeEach(() => { + Component = Vue.extend(noteHeader); + }); + + afterEach(() => { + vm.$destroy(); + }); + + 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(); + }); + }); + }); +}); |