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', () => {