diff options
Diffstat (limited to 'spec/javascripts/notes/components/note_header_spec.js')
-rw-r--r-- | spec/javascripts/notes/components/note_header_spec.js | 125 |
1 files changed, 0 insertions, 125 deletions
diff --git a/spec/javascripts/notes/components/note_header_spec.js b/spec/javascripts/notes/components/note_header_spec.js deleted file mode 100644 index 6d1a7ef370f..00000000000 --- a/spec/javascripts/notes/components/note_header_spec.js +++ /dev/null @@ -1,125 +0,0 @@ -import Vue from 'vue'; -import noteHeader from '~/notes/components/note_header.vue'; -import createStore from '~/notes/stores'; - -describe('note_header component', () => { - let store; - let vm; - let Component; - - beforeEach(() => { - Component = Vue.extend(noteHeader); - store = createStore(); - }); - - 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', - expanded: true, - }, - }).$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'); - expect(vm.$el.querySelector('.note-header-info a').dataset.userId).toEqual('1'); - expect(vm.$el.querySelector('.note-header-info a').dataset.username).toEqual('root'); - expect(vm.$el.querySelector('.note-header-info a').classList).toContain('js-user-link'); - }); - - it('should render timestamp link', () => { - expect(vm.$el.querySelector('a[href="#note_1394"]')).toBeDefined(); - }); - - it('should not render user information when prop `author` is empty object', done => { - vm.author = {}; - Vue.nextTick() - .then(() => { - expect(vm.$el.querySelector('.note-header-author-name')).toBeNull(); - }) - .then(done) - .catch(done.fail); - }); - }); - - 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', - expanded: true, - }, - }).$mount(); - }); - - it('should render toggle button', () => { - expect(vm.$el.querySelector('.js-vue-toggle-button')).toBeDefined(); - }); - - it('emits toggle event on click', done => { - spyOn(vm, '$emit'); - - vm.$el.querySelector('.js-vue-toggle-button').click(); - - Vue.nextTick(() => { - expect(vm.$emit).toHaveBeenCalledWith('toggleHandler'); - done(); - }); - }); - - it('renders up arrow when open', done => { - vm.expanded = true; - - Vue.nextTick(() => { - expect(vm.$el.querySelector('.js-vue-toggle-button i').classList).toContain( - 'fa-chevron-up', - ); - done(); - }); - }); - - it('renders down arrow when closed', done => { - vm.expanded = false; - - Vue.nextTick(() => { - expect(vm.$el.querySelector('.js-vue-toggle-button i').classList).toContain( - 'fa-chevron-down', - ); - done(); - }); - }); - }); -}); |