summaryrefslogtreecommitdiff
path: root/spec/javascripts/sidebar/sidebar_service_spec.js
blob: a4bd8ba8d88a8ffb9c977db51065404b4d69f549 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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',
      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();
      })
      .catch(done.fail);
  });

  it('updates the data', (done) => {
    this.service.update('issue[assignee_ids]', [1])
      .then((resp) => {
        expect(resp).toBeDefined();
        done();
      })
      .catch(done.fail);
  });

  it('gets projects for autocomplete', (done) => {
    this.service.getProjectsAutocomplete()
      .then((resp) => {
        expect(resp).toBeDefined();
        done();
      })
      .catch(done.fail);
  });

  it('moves the issue to another project', (done) => {
    this.service.moveIssue(123)
      .then((resp) => {
        expect(resp).toBeDefined();
        done();
      })
      .catch(done.fail);
  });
});