import Vue from 'vue'; import SidebarService from '~/sidebar/services/sidebar_service'; import Mock from './mock_data'; describe('Sidebar service', () => { beforeEach(() => { Vue.http.interceptors.push(Mock.sidebarMockInterceptor); this.service = new SidebarService({ endpoint: '/gitlab-org/gitlab-shell/issues/5.json', toggleSubscriptionEndpoint: '/gitlab-org/gitlab-shell/issues/5/toggle_subscription', moveIssueEndpoint: '/gitlab-org/gitlab-shell/issues/5/move', projectsAutocompleteEndpoint: '/autocomplete/projects?project_id=15', }); }); afterEach(() => { SidebarService.singleton = null; Vue.http.interceptors = _.without(Vue.http.interceptors, Mock.sidebarMockInterceptor); }); it('gets the data', (done) => { this.service.get() .then((resp) => { expect(resp).toBeDefined(); done(); }) .then(done) .catch(done.fail); }); it('updates the data', (done) => { this.service.update('issue[assignee_ids]', [1]) .then((resp) => { expect(resp).toBeDefined(); }) .then(done) .catch(done.fail); }); it('gets projects for autocomplete', (done) => { this.service.getProjectsAutocomplete() .then((resp) => { expect(resp).toBeDefined(); }) .then(done) .catch(done.fail); }); it('moves the issue to another project', (done) => { this.service.moveIssue(123) .then((resp) => { expect(resp).toBeDefined(); }) .then(done) .catch(done.fail); }); it('toggles the subscription', (done) => { this.service.toggleSubscription() .then((resp) => { expect(resp).toBeDefined(); }) .then(done) .catch(done.fail); }); });