diff --git a/package.json b/package.json
index e1b9516..795679c 100644
--- a/package.json
+++ b/package.json
@@ -45,6 +45,7 @@
"webpack-dev-server": "^2.7.1"
},
"dependencies": {
+ "classnames": "^2.2.5",
"prop-types": "^15.5.10",
"react": "^15.6.1",
"react-dom": "^15.6.1"
diff --git a/packages/react-bootstrap-table2/src/bootstrap-table.js b/packages/react-bootstrap-table2/src/bootstrap-table.js
index 0b09cc5..36c8f00 100644
--- a/packages/react-bootstrap-table2/src/bootstrap-table.js
+++ b/packages/react-bootstrap-table2/src/bootstrap-table.js
@@ -1,5 +1,6 @@
import React, { Component } from 'react';
import PropTypes from 'prop-types';
+import cs from 'classnames';
import Header from './header';
import Body from './body';
@@ -12,10 +13,25 @@ class BootstrapTable extends storeBase(Component) {
}
render() {
- const { columns, keyField } = this.props;
+ const {
+ columns,
+ keyField,
+ striped,
+ hover,
+ bordered,
+ condensed
+ } = this.props;
+
+ const tableClass = cs('table', {
+ 'table-striped': striped,
+ 'table-hover': hover,
+ 'table-bordered': bordered,
+ 'table-condensed': condensed
+ });
+
return (
-
+
{
it('should render successfully', () => {
expect(wrapper.length).toBe(1);
- expect(wrapper.find('table').length).toBe(1);
+ expect(wrapper.find('table.table').length).toBe(1);
expect(wrapper.find(Header).length).toBe(1);
expect(wrapper.find(Body).length).toBe(1);
expect(wrapper.find('.react-bootstrap-table-container').length).toBe(1);
});
+
+ it('should have table-bordered class as default', () => {
+ expect(wrapper.find('table.table-bordered').length).toBe(1);
+ });
+ });
+
+ describe('when hover is true', () => {
+ beforeEach(() => {
+ wrapper = shallow();
+ });
+
+ it('should have table-hover class on table', () => {
+ expect(wrapper.find('table.table-hover').length).toBe(1);
+ });
+ });
+
+ describe('when striped is true', () => {
+ beforeEach(() => {
+ wrapper = shallow();
+ });
+
+ it('should have table-striped class on table', () => {
+ expect(wrapper.find('table.table-striped').length).toBe(1);
+ });
+ });
+
+ describe('when condensed is true', () => {
+ beforeEach(() => {
+ wrapper = shallow();
+ });
+
+ it('should have table-condensed class on table', () => {
+ expect(wrapper.find('table.table-condensed').length).toBe(1);
+ });
+ });
+
+ describe('when bordered is false', () => {
+ beforeEach(() => {
+ wrapper = shallow();
+ });
+
+ it('should not have table-condensed class on table', () => {
+ expect(wrapper.find('table.table-condensed').length).toBe(0);
+ });
});
});