Welcome to mirror list, hosted at ThFree Co, Russian Federation.

mutations_spec.js « store « codequality_report « reports « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 8bc6bb26c2a68d3355175451f1c02b6ac86a420b (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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
import createStore from '~/reports/codequality_report/store';
import mutations from '~/reports/codequality_report/store/mutations';

describe('Codequality Reports mutations', () => {
  let localState;
  let localStore;

  beforeEach(() => {
    localStore = createStore();
    localState = localStore.state;
  });

  describe('SET_PATHS', () => {
    it('sets paths to given values', () => {
      const basePath = 'base.json';
      const headPath = 'head.json';
      const baseBlobPath = 'base/blob/path/';
      const headBlobPath = 'head/blob/path/';
      const reportsPath = 'reports.json';
      const helpPath = 'help.html';

      mutations.SET_PATHS(localState, {
        basePath,
        headPath,
        baseBlobPath,
        headBlobPath,
        reportsPath,
        helpPath,
      });

      expect(localState.basePath).toEqual(basePath);
      expect(localState.headPath).toEqual(headPath);
      expect(localState.baseBlobPath).toEqual(baseBlobPath);
      expect(localState.headBlobPath).toEqual(headBlobPath);
      expect(localState.reportsPath).toEqual(reportsPath);
      expect(localState.helpPath).toEqual(helpPath);
    });
  });

  describe('REQUEST_REPORTS', () => {
    it('sets isLoading to true', () => {
      mutations.REQUEST_REPORTS(localState);

      expect(localState.isLoading).toEqual(true);
    });
  });

  describe('RECEIVE_REPORTS_SUCCESS', () => {
    it('sets isLoading to false', () => {
      mutations.RECEIVE_REPORTS_SUCCESS(localState, {});

      expect(localState.isLoading).toEqual(false);
    });

    it('sets hasError to false', () => {
      mutations.RECEIVE_REPORTS_SUCCESS(localState, {});

      expect(localState.hasError).toEqual(false);
    });

    it('clears statusReason', () => {
      mutations.RECEIVE_REPORTS_SUCCESS(localState, {});

      expect(localState.statusReason).toEqual('');
    });

    it('sets newIssues and resolvedIssues from response data', () => {
      const data = { newIssues: [{ id: 1 }], resolvedIssues: [{ id: 2 }] };
      mutations.RECEIVE_REPORTS_SUCCESS(localState, data);

      expect(localState.newIssues).toEqual(data.newIssues);
      expect(localState.resolvedIssues).toEqual(data.resolvedIssues);
    });
  });

  describe('RECEIVE_REPORTS_ERROR', () => {
    it('sets isLoading to false', () => {
      mutations.RECEIVE_REPORTS_ERROR(localState);

      expect(localState.isLoading).toEqual(false);
    });

    it('sets hasError to true', () => {
      mutations.RECEIVE_REPORTS_ERROR(localState);

      expect(localState.hasError).toEqual(true);
    });

    it('sets statusReason to string from error response data', () => {
      const data = { status_reason: 'This merge request does not have codequality reports' };
      const error = { response: { data } };
      mutations.RECEIVE_REPORTS_ERROR(localState, error);

      expect(localState.statusReason).toEqual(data.status_reason);
    });
  });
});