universal_bot-ts

Форк
0
/
navigation.test.ts 
119 строк · 5.0 Кб
1
import {Navigation} from '../../src';
2

3
describe('Navigation tests', () => {
4
    let navigation: Navigation<number | { id: number, title: string }>;
5
    let elements: any = null;
6

7
    beforeEach(() => {
8
        navigation = new Navigation();
9
        elements = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
10
    });
11

12
    it('Get max page in navigation', () => {
13
        expect(navigation.maxVisibleElements).toEqual(5);
14
        expect(navigation.thisPage).toEqual(0);
15
        expect(navigation.getMaxPage(elements)).toEqual(2);
16
        elements.push(11);
17
        expect(navigation.getMaxPage(elements)).toEqual(3);
18
    });
19

20
    it('Get elements for navigation', () => {
21
        let tmpElements = navigation.getPageElements(elements, '');
22
        expect(tmpElements).toEqual([1, 2, 3, 4, 5]);
23

24
        tmpElements = navigation.getPageElements(elements, 'дальше');
25
        expect(navigation.thisPage).toEqual(1);
26
        expect(tmpElements).toEqual([6, 7, 8, 9, 10]);
27

28
        tmpElements = navigation.getPageElements(elements, 'дальше');
29
        expect(navigation.thisPage).toEqual(1);
30
        expect(tmpElements).toEqual([6, 7, 8, 9, 10]);
31

32
        tmpElements = navigation.getPageElements(elements, 'назад');
33
        expect(navigation.thisPage).toEqual(0);
34
        expect(tmpElements).toEqual([1, 2, 3, 4, 5]);
35

36
        tmpElements = navigation.getPageElements(elements, 'назад');
37
        expect(navigation.thisPage).toEqual(0);
38
        expect(tmpElements).toEqual([1, 2, 3, 4, 5]);
39
    });
40

41
    it('Selected number page', () => {
42
        navigation.elements = elements;
43
        expect(navigation.numberPage('1 страница')).toBe(true);
44
        expect(navigation.thisPage).toEqual(0);
45

46
        expect(navigation.numberPage('2 страница')).toBe(true);
47
        expect(navigation.thisPage).toEqual(1);
48

49
        expect(navigation.numberPage('3 страница')).toBe(true);
50
        expect(navigation.thisPage).toEqual(1);
51

52
        expect(navigation.numberPage('-2 страница')).toBe(true);
53
        expect(navigation.thisPage).toEqual(0);
54
    });
55

56
    it('Selected element', () => {
57
        navigation.elements = elements;
58
        let selectedElement = navigation.selectedElement(elements, `2`);
59
        expect(selectedElement).toEqual(2);
60
        elements = [];
61
        for (let i = 0; i < 10; i++) {
62
            elements.push({
63
                id: i + 1,
64
                title: `привет${i}`
65
            })
66
        }
67
        elements[3].title = 'приветствую тебя мир';
68

69
        selectedElement = navigation.selectedElement(elements, '2');
70
        expect(selectedElement).toEqual({id: 2, title: 'привет1'});
71

72
        selectedElement = navigation.selectedElement(elements, 'приветствую тебя мир', ['title']);
73
        expect(selectedElement).toEqual({id: 4, title: 'приветствую тебя мир'});
74

75
        selectedElement = navigation.selectedElement(elements, 'привет', ['title'], 1);
76
        expect(selectedElement).toEqual({id: 6, title: 'привет5'});
77

78
        selectedElement = navigation.selectedElement(elements, 'пока', ['title'], 1);
79
        expect(selectedElement).toEqual(null);
80
    });
81

82
    it('Page navigation arrow', () => {
83
        navigation.elements = elements;
84
        expect(navigation.getPageNav()).toEqual(['Дальше 👉']);
85
        navigation.thisPage = 1;
86
        expect(navigation.getPageNav()).toEqual(['👈 Назад']);
87
        navigation.maxVisibleElements = 2;
88
        expect(navigation.getPageNav()).toEqual(['👈 Назад', 'Дальше 👉']);
89
    });
90

91
    it('Page navigation number', () => {
92
        navigation.elements = elements;
93
        expect(navigation.getPageNav(true)).toEqual(['[1]', '2']);
94
        navigation.thisPage = 1;
95
        expect(navigation.getPageNav(true)).toEqual(['1', '[2]']);
96

97
        navigation.maxVisibleElements = 1;
98
        navigation.thisPage = 0;
99
        expect(navigation.getPageNav(true)).toEqual(['[1]', '2', '3', '4', '5', '... 10']);
100
        navigation.thisPage = 1;
101
        expect(navigation.getPageNav(true)).toEqual(['1', '[2]', '3', '4', '5', '... 10']);
102
        navigation.thisPage = 2;
103
        expect(navigation.getPageNav(true)).toEqual(['1', '2', '[3]', '4', '5', '... 10']);
104
        navigation.thisPage = 3;
105
        expect(navigation.getPageNav(true)).toEqual(['1', '2', '3', '[4]', '5', '6', '... 10']);
106
        navigation.thisPage = 4;
107
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '3', '4', '[5]', '6', '7', '... 10']);
108
        navigation.thisPage = 5;
109
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '4', '5', '[6]', '7', '8', '... 10']);
110
        navigation.thisPage = 6;
111
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '5', '6', '[7]', '8', '9', '10']);
112
        navigation.thisPage = 7;
113
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '6', '7', '[8]', '9', '10']);
114
        navigation.thisPage = 8;
115
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '7', '8', '[9]', '10']);
116
        navigation.thisPage = 9;
117
        expect(navigation.getPageNav(true)).toEqual(['1 ...', '8', '9', '[10]']);
118
    })
119
});
120

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.