diff --git a/packages/react-bootstrap-table2/test/cell.test.js b/packages/react-bootstrap-table2/test/cell.test.js index e2e42ab..1187c13 100644 --- a/packages/react-bootstrap-table2/test/cell.test.js +++ b/packages/react-bootstrap-table2/test/cell.test.js @@ -198,6 +198,26 @@ describe('Cell', () => { }); }); + describe('when props.tabIndex is change', () => { + const column = { dataField: 'name', text: 'Product Name' }; + beforeEach(() => { + props = { + row, + columnIndex: 1, + rowIndex: 1, + tabIndex: 5, + column + }; + wrapper = shallow( + ); + }); + + it('should return true', () => { + nextProps = { ...props, tabIndex: 2 }; + expect(wrapper.instance().shouldComponentUpdate(nextProps)).toBe(true); + }); + }); + describe('if column.isDummyField is true', () => { describe('when content is change', () => { const column = { dataField: '', text: 'Product Name', isDummyField: true }; diff --git a/packages/react-bootstrap-table2/test/row-selection/selection-cell.test.js b/packages/react-bootstrap-table2/test/row-selection/selection-cell.test.js index 7de9a40..fb6f798 100644 --- a/packages/react-bootstrap-table2/test/row-selection/selection-cell.test.js +++ b/packages/react-bootstrap-table2/test/row-selection/selection-cell.test.js @@ -57,6 +57,27 @@ describe('', () => { }); }); + describe('when tabIndex prop has been changed', () => { + beforeEach(() => { + props = { + selected: false, + mode, + rowIndex, + disabled: false, + tabIndex: 0, + rowKey: 1 + }; + wrapper = shallow( + + ); + }); + + it('should return true', () => { + nextProps = { ...props, tabIndex: 2 }; + expect(wrapper.instance().shouldComponentUpdate(nextProps)).toBe(true); + }); + }); + describe('when disabled prop has been changed', () => { beforeEach(() => { props = { diff --git a/packages/react-bootstrap-table2/test/row/row-pure-content.test.js b/packages/react-bootstrap-table2/test/row/row-pure-content.test.js index 70982c5..3000f93 100644 --- a/packages/react-bootstrap-table2/test/row/row-pure-content.test.js +++ b/packages/react-bootstrap-table2/test/row/row-pure-content.test.js @@ -104,6 +104,47 @@ describe('RowPureContent', () => { }); }); + describe('when tabIndexStart prop is -1', () => { + beforeEach(() => { + wrapper = shallow( + + ); + }); + + it('should not render tabIndex prop on Cell', () => { + wrapper.find(Cell).forEach((cell) => { + expect(cell.prop('tabIndex')).toBeUndefined(); + }); + }); + }); + + describe('when tabIndexStart prop is not -1', () => { + const tabIndexStart = 4; + beforeEach(() => { + wrapper = shallow( + + ); + }); + + it('should render correct tabIndex prop on Cell', () => { + wrapper.find(Cell).forEach((cell, i) => { + expect(cell.prop('tabIndex')).toEqual(tabIndexStart + i); + }); + }); + }); + describe('when editingRowIdx and editingColIdx prop is defined', () => { const editingRowIdx = rowIndex; const editingColIdx = 1; diff --git a/packages/react-bootstrap-table2/test/row/simple-row.test.js b/packages/react-bootstrap-table2/test/row/simple-row.test.js index 744f3cb..3d0f6c4 100644 --- a/packages/react-bootstrap-table2/test/row/simple-row.test.js +++ b/packages/react-bootstrap-table2/test/row/simple-row.test.js @@ -57,6 +57,49 @@ describe('SimpleRow', () => { expect(wrapper.length).toBe(1); expect(wrapper.find(RowPureContent)).toHaveLength(1); }); + + describe('when tabIndexCell prop is enable', () => { + const visibleColumnSize = 3; + beforeEach(() => { + wrapper = shallow( + + ); + }); + + it('should render correct tabIndexStart', () => { + expect(wrapper.length).toBe(1); + expect(wrapper.find(RowPureContent)).toHaveLength(1); + expect(wrapper.find(RowPureContent).prop('tabIndexStart')).toBe((rowIndex * visibleColumnSize) + 1); + }); + }); + + describe('when tabIndexCell prop is disable', () => { + const visibleColumnSize = 3; + beforeEach(() => { + wrapper = shallow( + + ); + }); + + it('should always render tabIndexStart as -1', () => { + expect(wrapper.length).toBe(1); + expect(wrapper.find(RowPureContent)).toHaveLength(1); + expect(wrapper.find(RowPureContent).prop('tabIndexStart')).toBe(-1); + }); + }); }); describe('shouldComponentUpdate', () => {