summaryrefslogtreecommitdiff
path: root/spec/javascripts/issuable_spec.js
blob: 4d57bfb1b3379fd463ec4117a9c7e3938ec63875 (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
56
57
58
59
60
61
62
63
64
import $ from 'jquery';
import MockAdaptor from 'axios-mock-adapter';
import axios from '~/lib/utils/axios_utils';
import IssuableIndex from '~/issuable_index';
import issuableInitBulkUpdateSidebar from '~/issuable_init_bulk_update_sidebar';

describe('Issuable', () => {
  describe('initBulkUpdate', () => {
    it('should not set bulkUpdateSidebar', () => {
      new IssuableIndex('issue_'); // eslint-disable-line no-new

      expect(issuableInitBulkUpdateSidebar.bulkUpdateSidebar).toBeNull();
    });

    it('should set bulkUpdateSidebar', () => {
      const element = document.createElement('div');
      element.classList.add('issues-bulk-update');
      document.body.appendChild(element);

      new IssuableIndex('issue_'); // eslint-disable-line no-new

      expect(issuableInitBulkUpdateSidebar.bulkUpdateSidebar).toBeDefined();
    });
  });

  describe('resetIncomingEmailToken', () => {
    let mock;

    beforeEach(() => {
      const element = document.createElement('a');
      element.classList.add('incoming-email-token-reset');
      element.setAttribute('href', 'foo');
      document.body.appendChild(element);

      const input = document.createElement('input');
      input.setAttribute('id', 'issuable_email');
      document.body.appendChild(input);

      new IssuableIndex('issue_'); // eslint-disable-line no-new

      mock = new MockAdaptor(axios);

      mock.onPut('foo').reply(200, {
        new_address: 'testing123',
      });
    });

    afterEach(() => {
      mock.restore();
    });

    it('should send request to reset email token', done => {
      spyOn(axios, 'put').and.callThrough();
      document.querySelector('.incoming-email-token-reset').click();

      setTimeout(() => {
        expect(axios.put).toHaveBeenCalledWith('foo');
        expect($('#issuable_email').val()).toBe('testing123');

        done();
      });
    });
  });
});