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); + }); }); });