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

utils_spec.js « list « packages « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 4e4f7b8a723df2927f279e7ca8a4b05b56586263 (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
import { SORT_FIELDS } from '~/packages/list/constants';
import { getNewPaginationPage, sortableFields } from '~/packages/list/utils';

describe('Packages list utils', () => {
  describe('sortableFields', () => {
    it('returns the correct list when is a project page', () => {
      expect(sortableFields()).toEqual(SORT_FIELDS.filter((f) => f.orderBy !== 'project_path'));
    });
    it('returns the full list on the group page', () => {
      expect(sortableFields(true)).toEqual(SORT_FIELDS);
    });
  });
  describe('packageTypeDisplay', () => {
    it('returns the current page when total items exceeds pagniation', () => {
      expect(getNewPaginationPage(2, 20, 21)).toBe(2);
    });

    it('returns the previous page when total items is lower than or equal to pagination', () => {
      expect(getNewPaginationPage(2, 20, 20)).toBe(1);
    });

    it('returns the first page when totalItems is lower than or equal to perPage', () => {
      expect(getNewPaginationPage(4, 20, 20)).toBe(1);
    });

    describe('works when a different perPage is used', () => {
      it('returns the current page', () => {
        expect(getNewPaginationPage(2, 10, 11)).toBe(2);
      });

      it('returns the previous page', () => {
        expect(getNewPaginationPage(2, 10, 10)).toBe(1);
      });
    });

    describe.each`
      currentPage | totalItems | expectedResult
      ${1}        | ${20}      | ${1}
      ${2}        | ${20}      | ${1}
      ${3}        | ${40}      | ${2}
      ${4}        | ${60}      | ${3}
    `(`works across numerious pages`, ({ currentPage, totalItems, expectedResult }) => {
      it(`when currentPage is ${currentPage} return to the previous page ${expectedResult}`, () => {
        expect(getNewPaginationPage(currentPage, 20, totalItems)).toBe(expectedResult);
      });
    });
  });
});