summaryrefslogtreecommitdiff
path: root/spec/javascripts/merged_buttons_spec.js
blob: b5c5e60dd971a358a9e531f0d9eb6364055d28a0 (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
/* global MergedButtons */

import '~/merged_buttons';

describe('MergedButtons', () => {
  const fixturesPath = 'merge_requests/merged_merge_request.html.raw';
  preloadFixtures(fixturesPath);

  beforeEach(() => {
    loadFixtures(fixturesPath);
    this.mergedButtons = new MergedButtons();
    this.$removeBranchWidget = $('.remove_source_branch_widget:not(.failed)');
    this.$removeBranchProgress = $('.remove_source_branch_in_progress');
    this.$removeBranchFailed = $('.remove_source_branch_widget.failed');
    this.$removeBranchButton = $('.remove_source_branch');
  });

  describe('removeSourceBranch', () => {
    it('shows loader', () => {
      $('.remove_source_branch').trigger('click');
      expect(this.$removeBranchProgress).toBeVisible();
      expect(this.$removeBranchWidget).not.toBeVisible();
    });
  });

  describe('removeBranchSuccess', () => {
    it('refreshes page when branch removed', () => {
      spyOn(gl.utils, 'refreshCurrentPage').and.stub();
      const response = { status: 200 };
      this.$removeBranchButton.trigger('ajax:success', response, 'xhr');
      expect(gl.utils.refreshCurrentPage).toHaveBeenCalled();
    });
  });

  describe('removeBranchError', () => {
    it('shows error message', () => {
      const response = { status: 500 };
      this.$removeBranchButton.trigger('ajax:error', response, 'xhr');
      expect(this.$removeBranchFailed).toBeVisible();
      expect(this.$removeBranchProgress).not.toBeVisible();
      expect(this.$removeBranchWidget).not.toBeVisible();
    });
  });
});