summaryrefslogtreecommitdiff
path: root/spec/frontend/pipelines/pipelines_store_spec.js
blob: ce21f788ed5379670b6d6b879176f22d4174241f (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
import PipelineStore from '~/pipelines/stores/pipelines_store';

describe('Pipelines Store', () => {
  let store;

  beforeEach(() => {
    store = new PipelineStore();
  });

  it('should be initialized with an empty state', () => {
    expect(store.state.pipelines).toEqual([]);
    expect(store.state.count).toEqual({});
    expect(store.state.pageInfo).toEqual({});
  });

  describe('storePipelines', () => {
    it('should use the default parameter if none is provided', () => {
      store.storePipelines();

      expect(store.state.pipelines).toEqual([]);
    });

    it('should store the provided array', () => {
      const array = [{ id: 1, status: 'running' }, { id: 2, status: 'success' }];
      store.storePipelines(array);

      expect(store.state.pipelines).toEqual(array);
    });
  });

  describe('storeCount', () => {
    it('should use the default parameter if none is provided', () => {
      store.storeCount();

      expect(store.state.count).toEqual({});
    });

    it('should store the provided count', () => {
      const count = { all: 20, finished: 10 };
      store.storeCount(count);

      expect(store.state.count).toEqual(count);
    });
  });

  describe('storePagination', () => {
    it('should use the default parameter if none is provided', () => {
      store.storePagination();

      expect(store.state.pageInfo).toEqual({});
    });

    it('should store pagination information normalized and parsed', () => {
      const pagination = {
        'X-nExt-pAge': '2',
        'X-page': '1',
        'X-Per-Page': '1',
        'X-Prev-Page': '2',
        'X-TOTAL': '37',
        'X-Total-Pages': '2',
      };

      const expectedResult = {
        perPage: 1,
        page: 1,
        total: 37,
        totalPages: 2,
        nextPage: 2,
        previousPage: 2,
      };

      store.storePagination(pagination);

      expect(store.state.pageInfo).toEqual(expectedResult);
    });
  });
});