react-next-paging
Version:
ReactJS component for easy pagination
193 lines (184 loc) • 7.07 kB
JavaScript
"use strict";
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _react = _interopRequireDefault(require("react"));
var _enzyme = _interopRequireWildcard(require("enzyme"));
var _enzymeAdapterReact = _interopRequireDefault(require("enzyme-adapter-react-16"));
var _reactNextPaging = _interopRequireWildcard(require("./react-next-paging"));
_enzyme.default.configure({
adapter: new _enzymeAdapterReact.default()
});
var ITEMS = ["a", "b", "c", "d", "e", "f"];
describe("react-next-paging", function () {
it("should call children prop with an object", function () {
// this will create a spy/mock
var mockChildren = jest.fn();
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_reactNextPaging.default, null, mockChildren));
expect(mockChildren).toHaveBeenCalled();
expect(mockChildren).toHaveBeenCalledTimes(1);
expect(mockChildren).toHaveBeenCalledWith(expect.objectContaining({
getBackButtonProps: expect.any(Function),
getFastBackButtonProps: expect.any(Function),
getFwdButtonProps: expect.any(Function),
getFastFwdButtonProps: expect.any(Function),
getSelPageButtonProps: expect.any(Function)
}));
});
it("should start on the first page and allow forward buttons to be enabled", function () {
var mockChildren = jest.fn();
var wrapper = (0, _enzyme.shallow)(_react.default.createElement(_reactNextPaging.default, {
items: ITEMS,
itemsperpage: 2,
pagesspan: 10
}, mockChildren));
expect(mockChildren).toHaveBeenCalled(); // expect(mockChildren).toHaveBeenCalledTimes(1);
expect(mockChildren).toHaveBeenCalledWith(expect.objectContaining({
goBackBdisabled: true,
goFastBackBdisabled: true,
goFwdBdisabled: false,
goFastFwdBdisabled: false
}));
});
});
describe("getNoPages", function () {
it("should return 0 when given any empty list", function () {
var items = [];
var itemsperpage = 2;
var actual = (0, _reactNextPaging.getNoPages)(items, itemsperpage);
expect(actual).toBe(0);
});
it("should round up on uneven", function () {
var items = Array.from({
length: 10
});
var itemsperpage = 3;
var actual = (0, _reactNextPaging.getNoPages)(items, itemsperpage);
expect(actual).toBe(4);
});
});
describe("isNoPagesLargerPagesSpan", function () {
it("should return true given nopages larger than pagesspan", function () {
var nopages = 24;
var pagesspan = 10;
var actual = (0, _reactNextPaging.isNoPagesLargerPagesSpan)(nopages, pagesspan);
expect(actual).toBe(true);
});
it("should return false given nopages smaller than pagesspan", function () {
var nopages = 5;
var pagesspan = 10;
var actual = (0, _reactNextPaging.isNoPagesLargerPagesSpan)(nopages, pagesspan);
expect(actual).toBe(false);
});
});
describe("getHalfPagesArray", function () {
it("should return 0 given pagesforarray 0", function () {
var pagesforarray = 0;
var actual = (0, _reactNextPaging.getHalfPagesArray)(pagesforarray);
expect(actual).toBe(0);
});
it("should return 12 given pagesforarray 24", function () {
var pagesforarray = 24;
var actual = (0, _reactNextPaging.getHalfPagesArray)(pagesforarray);
expect(actual).toBe(12);
});
it("should return 5 given pagesforarray 9", function () {
var pagesforarray = 9;
var actual = (0, _reactNextPaging.getHalfPagesArray)(pagesforarray);
expect(actual).toBe(4);
});
it("should return 5 given pagesforarray 11", function () {
var pagesforarray = 11;
var actual = (0, _reactNextPaging.getHalfPagesArray)(pagesforarray);
expect(actual).toBe(5);
});
});
describe("getIniPageofArray", function () {
it("should return 1 given page 1 nopages > pagesspan", function () {
var nopages = 40;
var pagesspan = 10;
var page = 1;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 2 given page 6 nopages > pagesspan", function () {
var nopages = 40;
var pagesspan = 10;
var page = 6;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 4 given page 9 nopages > pagesspan", function () {
var nopages = 40;
var pagesspan = 10;
var page = 9;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(4);
});
it("should return 12 given page 17 nopages > pagesspan", function () {
var nopages = 40;
var pagesspan = 10;
var page = 17;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(12);
});
it("should return 2 given page 3 nopages > pagesspan", function () {
var nopages = 5;
var pagesspan = 4;
var page = 3;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 1 given page 1 nopages < pagesspan", function () {
var nopages = 4;
var pagesspan = 10;
var page = 1;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 1 given page 4 nopages < pagesspan", function () {
var nopages = 4;
var pagesspan = 10;
var page = 4;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 1 given page 20 nopages < pagesspan", function () {
var nopages = 4;
var pagesspan = 10;
var page = 20;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(1);
});
it("should return 4 given page 6 nopages < pagesspan", function () {
var nopages = 40;
var pagesspan = 5;
var page = 6;
var inipagearray = 6;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(4);
});
it("should return 2 given page 5 nopages < pagesspan", function () {
var nopages = 5;
var pagesspan = 4;
var page = 5;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(2);
});
it("should return 2 given page 4 nopages < pagesspan", function () {
var nopages = 5;
var pagesspan = 4;
var page = 4;
var inipagearray = 1;
var actual = (0, _reactNextPaging.getIniPageofArray)(nopages, pagesspan, page, inipagearray);
expect(actual).toBe(2);
});
});