From 528be5c0583da9bfe8f3747db8be1669e220dfc2 Mon Sep 17 00:00:00 2001 From: Allen Date: Sat, 11 Aug 2018 13:32:44 +0800 Subject: [PATCH] fix #453 (#467) --- .../src/page-resolver.js | 4 +-- .../test/page-resolver.test.js | 29 ++++++++++++++++++- 2 files changed, 30 insertions(+), 3 deletions(-) diff --git a/packages/react-bootstrap-table2-paginator/src/page-resolver.js b/packages/react-bootstrap-table2-paginator/src/page-resolver.js index 8cfeb10..5146faf 100644 --- a/packages/react-bootstrap-table2-paginator/src/page-resolver.js +++ b/packages/react-bootstrap-table2-paginator/src/page-resolver.js @@ -40,8 +40,8 @@ export default ExtendBase => let from = ((currPage - pageStartIndex) * currSizePerPage); from = dataSize === 0 ? 0 : from + 1; - let to = Math.min((currSizePerPage * (currPage + offset) - 1), dataSize); - if (to >= dataSize) to -= 1; + let to = Math.min(currSizePerPage * (currPage + offset), dataSize); + if (to > dataSize) to = dataSize; return [from, to]; } diff --git a/packages/react-bootstrap-table2-paginator/test/page-resolver.test.js b/packages/react-bootstrap-table2-paginator/test/page-resolver.test.js index 1eaf996..7dbc198 100644 --- a/packages/react-bootstrap-table2-paginator/test/page-resolver.test.js +++ b/packages/react-bootstrap-table2-paginator/test/page-resolver.test.js @@ -119,7 +119,34 @@ describe('PageResolver', () => { it('should return correct array with from and to value', () => { const instance = wrapper.instance(); - expect(instance.calculateFromTo()).toEqual([1, props.currSizePerPage - 1]); + expect(instance.calculateFromTo()).toEqual([1, props.currSizePerPage]); + }); + + describe('if data is empty', () => { + beforeEach(() => { + props.dataSize = 87; + props.currPage = 9; + const mockElement = React.createElement(MockComponent, props, null); + wrapper = shallow(mockElement); + }); + + it('should return correct array with from and to value', () => { + const instance = wrapper.instance(); + expect(instance.calculateFromTo()).toEqual([81, props.dataSize]); + }); + }); + + describe('if current page is last page', () => { + beforeEach(() => { + props.dataSize = 0; + const mockElement = React.createElement(MockComponent, props, null); + wrapper = shallow(mockElement); + }); + + it('should return correct array with from and to value', () => { + const instance = wrapper.instance(); + expect(instance.calculateFromTo()).toEqual([0, 0]); + }); }); });