summaryrefslogtreecommitdiff
path: root/spec/javascripts/ide/stores/modules/pipelines/getters_spec.js
blob: b2a7e8a9025bb6587fa6021a64be7c8bde6c8d25 (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
import * as getters from '~/ide/stores/modules/pipelines/getters';
import state from '~/ide/stores/modules/pipelines/state';

describe('IDE pipeline getters', () => {
  let mockedState;

  beforeEach(() => {
    mockedState = state();
  });

  describe('hasLatestPipeline', () => {
    it('returns false when loading is true', () => {
      mockedState.isLoadingPipeline = true;

      expect(getters.hasLatestPipeline(mockedState)).toBe(false);
    });

    it('returns false when pipelines is null', () => {
      mockedState.latestPipeline = null;

      expect(getters.hasLatestPipeline(mockedState)).toBe(false);
    });

    it('returns false when loading is true & pipelines is null', () => {
      mockedState.latestPipeline = null;
      mockedState.isLoadingPipeline = true;

      expect(getters.hasLatestPipeline(mockedState)).toBe(false);
    });

    it('returns true when loading is false & pipelines is an object', () => {
      mockedState.latestPipeline = {
        id: 1,
      };
      mockedState.isLoadingPipeline = false;

      expect(getters.hasLatestPipeline(mockedState)).toBe(true);
    });
  });

  describe('failedJobs', () => {
    it('returns array of failed jobs', () => {
      mockedState.stages = [
        {
          title: 'test',
          jobs: [{ id: 1, status: 'failed' }, { id: 2, status: 'success' }],
        },
        {
          title: 'build',
          jobs: [{ id: 3, status: 'failed' }, { id: 4, status: 'failed' }],
        },
      ];

      expect(getters.failedJobs(mockedState).length).toBe(3);
      expect(getters.failedJobs(mockedState)).toEqual([
        {
          id: 1,
          status: jasmine.anything(),
        },
        {
          id: 3,
          status: jasmine.anything(),
        },
        {
          id: 4,
          status: jasmine.anything(),
        },
      ]);
    });
  });
});