diff options
Diffstat (limited to 'spec/javascripts/sidebar/sidebar_mediator_spec.js')
-rw-r--r-- | spec/javascripts/sidebar/sidebar_mediator_spec.js | 33 |
1 files changed, 21 insertions, 12 deletions
diff --git a/spec/javascripts/sidebar/sidebar_mediator_spec.js b/spec/javascripts/sidebar/sidebar_mediator_spec.js index 6c69c08e733..b0412105e3f 100644 --- a/spec/javascripts/sidebar/sidebar_mediator_spec.js +++ b/spec/javascripts/sidebar/sidebar_mediator_spec.js @@ -1,31 +1,37 @@ -import _ from 'underscore'; -import Vue from 'vue'; +import MockAdapter from 'axios-mock-adapter'; +import axios from '~/lib/utils/axios_utils'; import SidebarMediator from '~/sidebar/sidebar_mediator'; import SidebarStore from '~/sidebar/stores/sidebar_store'; import SidebarService from '~/sidebar/services/sidebar_service'; import Mock from './mock_data'; +const { mediator: mediatorMockData } = Mock; + describe('Sidebar mediator', function() { + let mock; + beforeEach(() => { - Vue.http.interceptors.push(Mock.sidebarMockInterceptor); - this.mediator = new SidebarMediator(Mock.mediator); + mock = new MockAdapter(axios); + + this.mediator = new SidebarMediator(mediatorMockData); }); afterEach(() => { SidebarService.singleton = null; SidebarStore.singleton = null; SidebarMediator.singleton = null; - Vue.http.interceptors = _.without(Vue.http.interceptors, Mock.sidebarMockInterceptor); + mock.restore(); }); it('assigns yourself ', () => { this.mediator.assignYourself(); - expect(this.mediator.store.currentUser).toEqual(Mock.mediator.currentUser); - expect(this.mediator.store.assignees[0]).toEqual(Mock.mediator.currentUser); + expect(this.mediator.store.currentUser).toEqual(mediatorMockData.currentUser); + expect(this.mediator.store.assignees[0]).toEqual(mediatorMockData.currentUser); }); it('saves assignees', done => { + mock.onPut(mediatorMockData.endpoint).reply(200, {}); this.mediator .saveAssignees('issue[assignee_ids]') .then(resp => { @@ -36,8 +42,8 @@ describe('Sidebar mediator', function() { }); it('fetches the data', done => { - const mockData = - Mock.responseMap.GET['/gitlab-org/gitlab-shell/issues/5.json?serializer=sidebar_extras']; + const mockData = Mock.responseMap.GET[mediatorMockData.endpoint]; + mock.onGet(mediatorMockData.endpoint).reply(200, mockData); spyOn(this.mediator, 'processFetchedData').and.callThrough(); this.mediator @@ -50,8 +56,7 @@ describe('Sidebar mediator', function() { }); it('processes fetched data', () => { - const mockData = - Mock.responseMap.GET['/gitlab-org/gitlab-shell/issues/5.json?serializer=sidebar_extras']; + const mockData = Mock.responseMap.GET[mediatorMockData.endpoint]; this.mediator.processFetchedData(mockData); expect(this.mediator.store.assignees).toEqual(mockData.assignees); @@ -74,6 +79,7 @@ describe('Sidebar mediator', function() { it('fetches autocomplete projects', done => { const searchTerm = 'foo'; + mock.onGet(mediatorMockData.projectsAutocompleteEndpoint).reply(200, {}); spyOn(this.mediator.service, 'getProjectsAutocomplete').and.callThrough(); spyOn(this.mediator.store, 'setAutocompleteProjects').and.callThrough(); @@ -88,7 +94,9 @@ describe('Sidebar mediator', function() { }); it('moves issue', done => { + const mockData = Mock.responseMap.POST[mediatorMockData.moveIssueEndpoint]; const moveToProjectId = 7; + mock.onPost(mediatorMockData.moveIssueEndpoint).reply(200, mockData); this.mediator.store.setMoveToProjectId(moveToProjectId); spyOn(this.mediator.service, 'moveIssue').and.callThrough(); const visitUrl = spyOnDependency(SidebarMediator, 'visitUrl'); @@ -97,7 +105,7 @@ describe('Sidebar mediator', function() { .moveIssue() .then(() => { expect(this.mediator.service.moveIssue).toHaveBeenCalledWith(moveToProjectId); - expect(visitUrl).toHaveBeenCalledWith('/root/some-project/issues/5'); + expect(visitUrl).toHaveBeenCalledWith(mockData.web_url); }) .then(done) .catch(done.fail); @@ -105,6 +113,7 @@ describe('Sidebar mediator', function() { it('toggle subscription', done => { this.mediator.store.setSubscribedState(false); + mock.onPost(mediatorMockData.toggleSubscriptionEndpoint).reply(200, {}); spyOn(this.mediator.service, 'toggleSubscription').and.callThrough(); this.mediator |