UNPKG

devextreme

Version:

HTML5 JavaScript Component Suite for Responsive Web Development

242 lines (240 loc) • 9.2 kB
/** * DevExtreme (cjs/__internal/grids/new/grid_core/pager/view.test.js) * Version: 25.1.3 * Build date: Wed Jun 25 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ "use strict"; var _globals = require("@jest/globals"); var _renderer = _interopRequireDefault(require("../../../../../core/renderer")); var _data_controller = require("../data_controller"); var _di = require("../di.test_utils"); var _options_controller = require("../options_controller/options_controller.mock"); var _view = require("./view"); function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e } } const createPagerView = options => { const context = (0, _di.getContext)(options ?? { dataSource: [], pager: { visible: true } }); const rootElement = document.createElement("div"); const pager = context.get(_view.PagerView); const optionsController = context.get(_options_controller.OptionsControllerMock); pager.render(rootElement); return { rootElement: rootElement, optionsController: optionsController, dataController: context.get(_data_controller.DataController) } }; const isPaginationVisible = rootElement => { const visible = null !== rootElement.querySelector(".dx-pagination"); return visible }; const getPagination = rootElement => { const element = rootElement.querySelector(".dx-pagination"); const component = (0, _renderer.default)(element).dxPagination("instance"); return component }; (0, _globals.describe)("Pager View", (() => { (0, _globals.describe)("render", (() => { (0, _globals.it)("empty PagerView", (() => { const { rootElement: rootElement } = createPagerView(); (0, _globals.expect)(rootElement).toMatchSnapshot() })); (0, _globals.it)("PagerView with options", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 2 }, pager: { showPageSizeSelector: true } }); (0, _globals.expect)(rootElement).toMatchSnapshot() })) })); (0, _globals.describe)("Visibility", (() => { (0, _globals.it)("should be visible when visible = 'true'", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: true, showPageSizeSelector: true } }); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeTruthy() })); (0, _globals.it)("should be hidden when visible = 'false'", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: false, showPageSizeSelector: true } }); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeFalsy() })); (0, _globals.it)("should be hidden when visible = 'auto' and pageCount <= 1", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(4)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: "auto", showPageSizeSelector: true } }); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeFalsy() })); (0, _globals.it)("should be visibl visible = 'auto' and pageCount > 1", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: "auto", showPageSizeSelector: true } }); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeTruthy() })); (0, _globals.it)("should be hidden when changing a visible to 'false' at runtime", (() => { const { rootElement: rootElement, optionsController: optionsController } = createPagerView({ dataSource: [...new Array(4)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: true, showPageSizeSelector: true } }); optionsController.option("pager.visible", false); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeFalsy() })); (0, _globals.it)("should be visible when changing a visible to 'true' at runtime", (() => { const { rootElement: rootElement, optionsController: optionsController } = createPagerView({ dataSource: [...new Array(4)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: false, showPageSizeSelector: true } }); optionsController.option("pager.visible", true); (0, _globals.expect)(isPaginationVisible(rootElement)).toBeTruthy() })) })); (0, _globals.describe)("allowedPageSizes", (() => { (0, _globals.it)("allowedPageSizes = 'auto'", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(4)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: true, allowedPageSizes: "auto", showPageSizeSelector: true } }); const pagination = getPagination(rootElement); (0, _globals.expect)(pagination.option("allowedPageSizes")).toEqual([3, 6, 12]) })); (0, _globals.it)("allowedPageSizes = custom values", (() => { const { rootElement: rootElement } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { visible: "auto", allowedPageSizes: [4, 10, 20], showPageSizeSelector: true } }); const pagination = getPagination(rootElement); (0, _globals.expect)(pagination.option("allowedPageSizes")).toEqual([4, 10, 20]) })); (0, _globals.it)("allowedPageSizes changed to custom values at runtime", (() => { const { rootElement: rootElement, optionsController: optionsController } = createPagerView({ dataSource: [...new Array(20)].map(((_, index) => ({ field: `test_${index}` }))), paging: { pageIndex: 6 }, pager: { allowedPageSizes: "auto", showPageSizeSelector: true } }); optionsController.option("pager.allowedPageSizes", [4, 10, 20]); const pagination = getPagination(rootElement); (0, _globals.expect)(pagination.option("allowedPageSizes")).toEqual([4, 10, 20]) })) })) }));