• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15//@ts-ignore
16import {PageNation} from '../../../../dist/base-ui/chart/pagenation/PageNation.js';
17//@ts-ignore
18import {PaginationBox} from '../../../../dist/base-ui/chart/pagenation/pagination-box.js';
19
20// @ts-ignore
21window.ResizeObserver = window.ResizeObserver || jest.fn().mockImplementation(() => ({
22    disconnect: jest.fn(),
23    observe: jest.fn(),
24    unobserve: jest.fn(),
25}));
26
27describe('PageNation Test', () => {
28    it('pageNationTest01', function () {
29        document.body.innerHTML = `
30        <pagination-box id="pagination-info"></pagination-box> `;
31        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
32        let pageNation = new PageNation(pageInfo, {
33            current: 1,
34            totalpage: 9,
35            pageSize: 50,
36            change(num: number) {},
37        });
38        expect(pageNation).not.toBeUndefined();
39    });
40
41    it('pageNationTest01', function () {
42        document.body.innerHTML = `
43        <pagination-box id="pagination-info"></pagination-box> `;
44        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
45        let pageNation = new PageNation(pageInfo, {
46            current: 1,
47            totalpage: 200,
48            pageSize: 50,
49            change(num: number) {},
50        });
51        expect(pageNation.pageInfo.current).toEqual(1);
52    });
53
54    it('pageNationTest02', function () {
55        document.body.innerHTML = `
56        <pagination-box id="pagination-info"></pagination-box> `;
57        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
58        let pageNation = new PageNation(pageInfo, {
59            current: 1,
60            totalpage: 1000,
61            pageSize: 10,
62            change(num: number) {},
63        });
64        expect(pageNation.pageInfo.pageSize).toEqual(10);
65    });
66
67    it('pageNationTest03', function () {
68        document.body.innerHTML = `
69        <pagination-box id="pagination-info"></pagination-box> `;
70        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
71        let pageNation = new PageNation(pageInfo, {
72            current: 5,
73            totalpage: 1000,
74            pageSize: 10,
75            change(num: number) {},
76        });
77        expect(pageNation).not.toBeUndefined();
78    });
79
80    it('pageNationTest04', function () {
81        document.body.innerHTML = `
82        <pagination-box id="pagination-info"></pagination-box> `;
83        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
84        let pageNation = new PageNation(pageInfo, {
85            current: 149,
86            totalpage: 150,
87            pageSize: 10,
88            change(num: number) {},
89        });
90        expect(pageNation.pageInfo.totalpage).toEqual(150);
91    });
92
93    it('pageNationTest05', function () {
94        document.body.innerHTML = `
95        <pagination-box id="pagination-info"></pagination-box> `;
96        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
97        let pageNation = new PageNation(pageInfo, {
98            current: 11,
99            totalpage: 15,
100            pageSize: 10,
101            change(num: number) {},
102        });
103        expect(pageNation.pageInfo.total).toEqual(100);
104    });
105
106    it('pageNationTest06', function () {
107        document.body.innerHTML = `
108        <pagination-box id="pagination-info"></pagination-box> `;
109        let pageInfo = document.getElementById('pagination-info') as PaginationBox;
110        let pageNation = new PageNation(pageInfo, {
111            current: 1,
112            totalpage: 150,
113            pageSize: 10,
114            change(num: number) {},
115        });
116        let mouseMoveEvent: MouseEvent = new MouseEvent('click', <MouseEventInit>{ movementX: 1, movementY: 2 });
117        pageNation.element.dispatchEvent(mouseMoveEvent);
118    });
119})