59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			59 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| import Vue from 'vue';
 | |
| import createStore from '~/notes/stores';
 | |
| import DiscussionCounter from '~/notes/components/discussion_counter.vue';
 | |
| import { createComponentWithStore } from 'spec/helpers/vue_mount_component_helper';
 | |
| import { noteableDataMock, discussionMock, notesDataMock } from '../mock_data';
 | |
| 
 | |
| describe('DiscussionCounter component', () => {
 | |
|   let store;
 | |
|   let vm;
 | |
| 
 | |
|   beforeEach(() => {
 | |
|     window.mrTabs = {};
 | |
| 
 | |
|     const Component = Vue.extend(DiscussionCounter);
 | |
| 
 | |
|     store = createStore();
 | |
|     store.dispatch('setNoteableData', noteableDataMock);
 | |
|     store.dispatch('setNotesData', notesDataMock);
 | |
| 
 | |
|     vm = createComponentWithStore(Component, store);
 | |
|   });
 | |
| 
 | |
|   afterEach(() => {
 | |
|     vm.$destroy();
 | |
|   });
 | |
| 
 | |
|   describe('methods', () => {
 | |
|     describe('jumpToFirstUnresolvedDiscussion', () => {
 | |
|       it('expands unresolved discussion', () => {
 | |
|         spyOn(vm, 'expandDiscussion').and.stub();
 | |
|         const discussions = [
 | |
|           {
 | |
|             ...discussionMock,
 | |
|             id: discussionMock.id,
 | |
|             notes: [{ ...discussionMock.notes[0], resolvable: true, resolved: true }],
 | |
|           },
 | |
|           {
 | |
|             ...discussionMock,
 | |
|             id: discussionMock.id + 1,
 | |
|             notes: [{ ...discussionMock.notes[0], resolvable: true, resolved: false }],
 | |
|           },
 | |
|         ];
 | |
|         const firstDiscussionId = discussionMock.id + 1;
 | |
|         store.replaceState({
 | |
|           ...store.state,
 | |
|           discussions,
 | |
|         });
 | |
|         setFixtures(`
 | |
|           <div class="discussion" data-discussion-id="${firstDiscussionId}"></div>
 | |
|         `);
 | |
| 
 | |
|         vm.jumpToFirstUnresolvedDiscussion();
 | |
| 
 | |
|         expect(vm.expandDiscussion).toHaveBeenCalledWith({ discussionId: firstDiscussionId });
 | |
|       });
 | |
|     });
 | |
|   });
 | |
| });
 |