diff --git a/package.json b/package.json
index 1b118fbb1..dc488626c 100644
--- a/package.json
+++ b/package.json
@@ -18,7 +18,7 @@
"scripts": {
"lint": "eslint src; exit 0",
"start": "BABEL_ENV=storybook start-storybook -p 6006 -s ./public",
- "test": "NODE_ENV=test nyc --reporter text --reporter lcov mocha --recursive --timeout 10000 --compilers js:babel-register --require ignore-styles",
+ "test": "NODE_ENV=test nyc --reporter text --reporter lcov mocha",
"docs": "BABEL_ENV=storybook build-storybook -o docs",
"version": "npm run docs && git add -A docs",
"dist": "webpack -p",
diff --git a/src/index.js b/src/index.js
index 09d41959b..5ad25c0bb 100755
--- a/src/index.js
+++ b/src/index.js
@@ -84,6 +84,7 @@ import DeletedNote from './components/DeletedNote.js';
import EditableNote from './components/EditableNote.js';
import ExpandableSection from './components/ExpandableSection.js';
import FeatureBanner from './components/FeatureBanner.js';
+import FileInput from './components/FileInput.js';
import FilterList from './components/FilterList.js';
import FormChoice from './components/FormChoice.js';
import FormRow from './components/FormRow.js';
@@ -100,8 +101,10 @@ import Notes from './components/Notes.js';
import Paginator from './components/Paginator';
import PatternInput from './components/PatternInput.js';
import Progress from './components/Progress.js';
+import RadioInput from './components/RadioInput.js';
import Select from './components/Select.js';
import Spinner from './components/Spinner.js';
+import StaticInput from './components/StaticInput.js';
import Steps from './components/Steps.js';
import SummaryBox from './components/SummaryBox.js';
import SummaryBoxItem from './components/SummaryBoxItem.js';
@@ -141,6 +144,7 @@ export {
DeletedNote,
EditableNote,
Fade,
+ FileInput,
Form,
FormFeedback,
FormGroup,
@@ -215,7 +219,9 @@ export {
Notes,
PatternInput,
Progress,
+ RadioInput,
Spinner,
+ StaticInput,
Steps,
SummaryBox,
SummaryBoxItem,
diff --git a/test/.eslintrc b/test/.eslintrc
new file mode 100644
index 000000000..7eeefc33b
--- /dev/null
+++ b/test/.eslintrc
@@ -0,0 +1,5 @@
+{
+ "env": {
+ "mocha": true
+ }
+}
diff --git a/test/components/Address.spec.js b/test/components/Address.spec.js
index 57d0c978b..98340ee15 100644
--- a/test/components/Address.spec.js
+++ b/test/components/Address.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
diff --git a/test/components/Alert.spec.js b/test/components/Alert.spec.js
index 38a3f2741..529c49baf 100644
--- a/test/components/Alert.spec.js
+++ b/test/components/Alert.spec.js
@@ -1,12 +1,7 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount, shallow } from 'enzyme';
-import { Icon } from '../../src/';
-
-import Alert from '../../src/components/Alert';
+import { Icon, Alert } from '../../src';
import { Alert as Inner } from 'reactstrap';
diff --git a/test/components/BlockPanel.spec.js b/test/components/BlockPanel.spec.js
index 0c40c3fe0..de048aff4 100644
--- a/test/components/BlockPanel.spec.js
+++ b/test/components/BlockPanel.spec.js
@@ -1,14 +1,10 @@
-/* eslint-env mocha */
-
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
-import { Button, CardBlock, CardTitle, Icon } from '../../src';
+import { Button, CardBlock, CardTitle, Icon, BlockPanel } from '../../src';
import { mount, shallow } from 'enzyme';
-import BlockPanel from '../../src/components/BlockPanel.js';
-
describe('', () => {
context('is expandable', () => {
it('should be open by default', () => {
diff --git a/test/components/BoundForm.spec.js b/test/components/BoundForm.spec.js
index 8e386652f..1ef5fe3d2 100644
--- a/test/components/BoundForm.spec.js
+++ b/test/components/BoundForm.spec.js
@@ -1,14 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import sinon from 'sinon';
import assert from 'assert';
import { shallow } from 'enzyme';
-import { Input } from 'reactstrap';
-
-import BoundForm from '../../src/components/BoundForm';
-import BoundFormRow from '../../src/components/BoundFormRow';
-import FormChoice from '../../src/components/FormChoice';
+import { BoundForm } from '../../src';
describe('', () => {
const data = {
diff --git a/test/components/BoundFormRow.spec.js b/test/components/BoundFormRow.spec.js
index d0447aca0..54c4b6150 100644
--- a/test/components/BoundFormRow.spec.js
+++ b/test/components/BoundFormRow.spec.js
@@ -3,9 +3,8 @@ import sinon from 'sinon';
import assert from 'assert';
import { shallow } from 'enzyme';
-import BoundFormRow from '../../src/components/BoundFormRow';
+import { BoundFormRow } from '../../src';
-/* eslint-env mocha */
describe('', () => {
describe('with context', () => {
const onChange = sinon.stub();
diff --git a/test/components/Calendar.spec.js b/test/components/Calendar.spec.js
index b71425049..86df3ea8b 100644
--- a/test/components/Calendar.spec.js
+++ b/test/components/Calendar.spec.js
@@ -1,14 +1,13 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
import sinon from 'sinon';
-import { Calendar } from '../../src';
import addWeeks from 'date-fns/add_weeks';
import endOfWeek from 'date-fns/end_of_week';
import isSameDay from 'date-fns/is_same_day';
import startOfMonth from 'date-fns/start_of_month';
import startOfWeek from 'date-fns/start_of_week';
+import { Calendar } from '../../src';
describe('', () => {
it('should render correctly', () => {
diff --git a/test/components/Callout.spec.js b/test/components/Callout.spec.js
index f8eeee120..eb6003877 100644
--- a/test/components/Callout.spec.js
+++ b/test/components/Callout.spec.js
@@ -1,9 +1,7 @@
-/* eslint-env mocha */
-
import React from 'react';
import assert from 'assert';
-import { Callout } from '../../src';
import { mount } from 'enzyme';
+import { Callout } from '../../src';
describe('', () => {
it('should render correctly', () => {
diff --git a/test/components/CheckboxBooleanInput.spec.js b/test/components/CheckboxBooleanInput.spec.js
index 48562a945..4cfac22e2 100644
--- a/test/components/CheckboxBooleanInput.spec.js
+++ b/test/components/CheckboxBooleanInput.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import sinon from 'sinon';
import assert from 'assert';
diff --git a/test/components/CheckboxInput.spec.js b/test/components/CheckboxInput.spec.js
index 3ec2dd300..ac251032f 100644
--- a/test/components/CheckboxInput.spec.js
+++ b/test/components/CheckboxInput.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
diff --git a/test/components/CheckboxListInput.spec.js b/test/components/CheckboxListInput.spec.js
index 9710f11bf..9fbf6bbbc 100644
--- a/test/components/CheckboxListInput.spec.js
+++ b/test/components/CheckboxListInput.spec.js
@@ -1,11 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import sinon from 'sinon';
import assert from 'assert';
import { shallow } from 'enzyme';
-import CheckboxListInput from '../../src/components/CheckboxListInput';
-import FormChoice from '../../src/components/FormChoice';
+import { CheckboxListInput, FormChoice } from '../../src';
describe('', () => {
let onChange = sinon.stub();
diff --git a/test/components/Close.spec.js b/test/components/Close.spec.js
index 758908c20..44527b4af 100644
--- a/test/components/Close.spec.js
+++ b/test/components/Close.spec.js
@@ -1,6 +1,3 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/CreditCardExpiration.spec.js b/test/components/CreditCardExpiration.spec.js
index e5223bc2c..2e6ce5926 100644
--- a/test/components/CreditCardExpiration.spec.js
+++ b/test/components/CreditCardExpiration.spec.js
@@ -1,11 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
import sinon from 'sinon';
-import { Select } from '../../src/';
-import CreditCardExpiration from '../../src/components/CreditCardExpiration';
+import { Select, CreditCardExpiration } from '../../src';
describe('', () => {
const today = new Date();
diff --git a/test/components/CreditCardNumber.spec.js b/test/components/CreditCardNumber.spec.js
index f087c46a6..269e17f2f 100644
--- a/test/components/CreditCardNumber.spec.js
+++ b/test/components/CreditCardNumber.spec.js
@@ -1,11 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount, shallow } from 'enzyme';
import sinon from 'sinon';
-import CreditCardNumber from '../../src/components/CreditCardNumber';
-import Icon from '../../src/components/Icon';
+import { CreditCardNumber, Icon } from '../../src';
const EXAMPLES = {
'american-express': '378282246310005',
diff --git a/test/components/CurrencyInput.spec.js b/test/components/CurrencyInput.spec.js
index 397e5942b..d792c08be 100644
--- a/test/components/CurrencyInput.spec.js
+++ b/test/components/CurrencyInput.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/Datapair.spec.js b/test/components/Datapair.spec.js
index 0d96efec1..fe1a34c51 100644
--- a/test/components/Datapair.spec.js
+++ b/test/components/Datapair.spec.js
@@ -1,10 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import { Col } from 'reactstrap';
-import Datapair from '../../src/components/Datapair';
+import { Datapair } from '../../src';
describe('', () => {
const component = shallow();
diff --git a/test/components/DateInput.spec.js b/test/components/DateInput.spec.js
index 7691fe53f..2ab3ef383 100644
--- a/test/components/DateInput.spec.js
+++ b/test/components/DateInput.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/DateMonth.spec.js b/test/components/DateMonth.spec.js
index 1c4da9ee3..bf24746c7 100755
--- a/test/components/DateMonth.spec.js
+++ b/test/components/DateMonth.spec.js
@@ -1,9 +1,5 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
-import assert from 'assert';
-import { mount, shallow } from 'enzyme';
+import { mount } from 'enzyme';
import { DateMonth } from '../../src';
diff --git a/test/components/DeletedNote.spec.js b/test/components/DeletedNote.spec.js
index 5ab4a9250..fc23f3c79 100644
--- a/test/components/DeletedNote.spec.js
+++ b/test/components/DeletedNote.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/EditableNote.spec.js b/test/components/EditableNote.spec.js
index fb6b6adf6..0db26d684 100644
--- a/test/components/EditableNote.spec.js
+++ b/test/components/EditableNote.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/ExpandableSection.spec.js b/test/components/ExpandableSection.spec.js
index 8370fc1b7..cfce582f5 100644
--- a/test/components/ExpandableSection.spec.js
+++ b/test/components/ExpandableSection.spec.js
@@ -1,10 +1,8 @@
-/* eslint-env mocha */
-
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
-import ExpandableSection from '../../src/components/ExpandableSection.js';
+import { ExpandableSection } from '../../src';
describe('', () => {
it('should be closed by default', () => {
diff --git a/test/components/FeatureBanner.spec.js b/test/components/FeatureBanner.spec.js
index a7ab8b2f1..71d8d287b 100644
--- a/test/components/FeatureBanner.spec.js
+++ b/test/components/FeatureBanner.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/FileInput.spec.js b/test/components/FileInput.spec.js
index 0dd9a3efa..de6bfcf90 100644
--- a/test/components/FileInput.spec.js
+++ b/test/components/FileInput.spec.js
@@ -3,12 +3,8 @@ import { shallow } from 'enzyme';
import sinon from 'sinon';
import assert from 'assert';
import { Input } from 'reactstrap';
+import { FileInput } from '../../src';
-import FileInput from '../../src/components/FileInput';
-
-class MockFileReader {
- readAsDataURL = stub();
-}
describe('', () => {
const sandbox = sinon.sandbox.create();
diff --git a/test/components/FilterList.spec.js b/test/components/FilterList.spec.js
index 32e846b03..edab2637f 100644
--- a/test/components/FilterList.spec.js
+++ b/test/components/FilterList.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/FormChoice.spec.js b/test/components/FormChoice.spec.js
index 752ca1391..20455a839 100644
--- a/test/components/FormChoice.spec.js
+++ b/test/components/FormChoice.spec.js
@@ -1,10 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import { Input, Label, FormGroup } from 'reactstrap';
-import FormChoice from '../../src/components/FormChoice';
+import { FormChoice } from '../../src';
describe('', () => {
describe('unknown type', () => {
diff --git a/test/components/FormRow.spec.js b/test/components/FormRow.spec.js
index 3016baa99..61d1aa4aa 100644
--- a/test/components/FormRow.spec.js
+++ b/test/components/FormRow.spec.js
@@ -1,14 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import { Input, Label, Col, FormText, FormFeedback } from 'reactstrap';
-import FormRow from '../../src/components/FormRow';
-import StaticInput from '../../src/components/StaticInput';
-import RadioInput from '../../src/components/RadioInput';
-import CheckboxInput from '../../src/components/CheckboxInput';
-import FileInput from '../../src/components/FileInput';
+import { FormRow, StaticInput, RadioInput, CheckboxInput, FileInput } from '../../src';
describe('', () => {
describe('by default', () => {
diff --git a/test/components/HasManyFields.spec.js b/test/components/HasManyFields.spec.js
index e9c588829..d50acb263 100644
--- a/test/components/HasManyFields.spec.js
+++ b/test/components/HasManyFields.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/HasManyFieldsAdd.spec.js b/test/components/HasManyFieldsAdd.spec.js
index a0be2147a..140334d33 100644
--- a/test/components/HasManyFieldsAdd.spec.js
+++ b/test/components/HasManyFieldsAdd.spec.js
@@ -1,11 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import { Button } from 'reactstrap';
-import Icon from '../../src/components/Icon';
-import HasManyFieldsAdd from '../../src/components/HasManyFieldsAdd';
+import { Icon, HasManyFieldsAdd } from '../../src';
describe('', () => {
const component = shallow(
diff --git a/test/components/HasManyFieldsRow.spec.js b/test/components/HasManyFieldsRow.spec.js
index 705878dfc..1c71861bd 100644
--- a/test/components/HasManyFieldsRow.spec.js
+++ b/test/components/HasManyFieldsRow.spec.js
@@ -1,12 +1,10 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
import { shallow } from 'enzyme';
import { Button, Col } from 'reactstrap';
-import Icon from '../../src/components/Icon';
-import HasManyFieldsRow from '../../src/components/HasManyFieldsRow';
+import { Icon, HasManyFieldsRow } from '../../src';
describe('', () => {
const onDelete = sinon.spy();
diff --git a/test/components/HelpBubble.spec.js b/test/components/HelpBubble.spec.js
index 846b3db82..7d21d3831 100644
--- a/test/components/HelpBubble.spec.js
+++ b/test/components/HelpBubble.spec.js
@@ -1,11 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
-import { Icon } from '../../src';
import { Popover, PopoverTitle, PopoverContent } from 'reactstrap';
+import { Icon, HelpBubble } from '../../src';
-import HelpBubble from '../../src/components/HelpBubble';
describe('', () => {
it('should have a question mark', () => {
diff --git a/test/components/InfoBox.spec.js b/test/components/InfoBox.spec.js
index 7447fb302..d8020f838 100644
--- a/test/components/InfoBox.spec.js
+++ b/test/components/InfoBox.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/LabelBadge.spec.js b/test/components/LabelBadge.spec.js
index c7bc86872..05a1dbb08 100644
--- a/test/components/LabelBadge.spec.js
+++ b/test/components/LabelBadge.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/Modal.spec.js b/test/components/Modal.spec.js
index 85aa5e6d0..43995f763 100644
--- a/test/components/Modal.spec.js
+++ b/test/components/Modal.spec.js
@@ -1,6 +1,3 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/Note.spec.js b/test/components/Note.spec.js
index b0149918d..64cd8f8a2 100644
--- a/test/components/Note.spec.js
+++ b/test/components/Note.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { Note } from '../../src';
diff --git a/test/components/Notes.spec.js b/test/components/Notes.spec.js
index 9d4d13c17..e6babaa7c 100644
--- a/test/components/Notes.spec.js
+++ b/test/components/Notes.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { Notes } from '../../src';
diff --git a/test/components/Paginator.spec.js b/test/components/Paginator.spec.js
index e85fd48f4..690216284 100644
--- a/test/components/Paginator.spec.js
+++ b/test/components/Paginator.spec.js
@@ -1,4 +1,3 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
diff --git a/test/components/PatternInput.spec.js b/test/components/PatternInput.spec.js
index 9260d6a94..0b567bf5c 100644
--- a/test/components/PatternInput.spec.js
+++ b/test/components/PatternInput.spec.js
@@ -1,10 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import sinon from 'sinon';
import { mount } from 'enzyme';
-import PatternInput from '../../src/components/PatternInput';
+import { PatternInput } from '../../src';
describe('', () => {
it('restrictInput should only prevent onChange for invalid input', () => {
diff --git a/test/components/Progress.spec.js b/test/components/Progress.spec.js
index 7289480e3..95a7f7377 100644
--- a/test/components/Progress.spec.js
+++ b/test/components/Progress.spec.js
@@ -1,6 +1,3 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/RadioInput.spec.js b/test/components/RadioInput.spec.js
index 77f0bd558..ad2437315 100644
--- a/test/components/RadioInput.spec.js
+++ b/test/components/RadioInput.spec.js
@@ -1,10 +1,8 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
-import RadioInput from '../../src/components/RadioInput';
-import FormChoice from '../../src/components/FormChoice';
+import { FormChoice, RadioInput } from '../../src';
describe('', () => {
const component = shallow(
diff --git a/test/components/Select.spec.js b/test/components/Select.spec.js
index 74e93785a..5114adcbc 100644
--- a/test/components/Select.spec.js
+++ b/test/components/Select.spec.js
@@ -1,13 +1,10 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import sinon from 'sinon';
import ReactSelect from 'react-select';
-import Select from '../../src/components/Select.js';
+import { Select } from '../../src';
const OPTIONS = [
{ label: 'Eeny', value: 1 },
diff --git a/test/components/Spinner.spec.js b/test/components/Spinner.spec.js
index 01ca64d05..73d9de4d8 100644
--- a/test/components/Spinner.spec.js
+++ b/test/components/Spinner.spec.js
@@ -1,6 +1,3 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/StaticInput.spec.js b/test/components/StaticInput.spec.js
index 59eb07790..98ef91591 100644
--- a/test/components/StaticInput.spec.js
+++ b/test/components/StaticInput.spec.js
@@ -1,10 +1,9 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
import { Input } from 'reactstrap';
-import StaticInput from '../../src/components/StaticInput';
+import { StaticInput } from '../../src';
describe('', () => {
const component = shallow(
diff --git a/test/components/Steps.spec.js b/test/components/Steps.spec.js
index c36423be6..c9a75e59e 100644
--- a/test/components/Steps.spec.js
+++ b/test/components/Steps.spec.js
@@ -1,6 +1,3 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/SummaryBox.spec.js b/test/components/SummaryBox.spec.js
index b52af0192..cc17e32ae 100644
--- a/test/components/SummaryBox.spec.js
+++ b/test/components/SummaryBox.spec.js
@@ -1,6 +1,3 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
diff --git a/test/components/SummaryBoxItem.spec.js b/test/components/SummaryBoxItem.spec.js
index cf155a390..e59fe6edc 100644
--- a/test/components/SummaryBoxItem.spec.js
+++ b/test/components/SummaryBoxItem.spec.js
@@ -1,6 +1,3 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/components/Table.spec.js b/test/components/Table.spec.js
index e1cb16649..04714add0 100644
--- a/test/components/Table.spec.js
+++ b/test/components/Table.spec.js
@@ -1,11 +1,8 @@
-/* eslint-env mocha */
-
-import 'jsdom-global/register';
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
-import Table from '../../src/components/Table.js';
+import { Table } from '../../src';
describe('
', () => {
it('should render correctly', () => {
diff --git a/test/components/Tooltip.spec.js b/test/components/Tooltip.spec.js
index 0f2881665..480bf7a46 100644
--- a/test/components/Tooltip.spec.js
+++ b/test/components/Tooltip.spec.js
@@ -1,9 +1,8 @@
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { shallow } from 'enzyme';
-import Tooltip from '../../src/components/Tooltip';
+import { Tooltip } from '../../src';
describe('', () => {
describe('by default', () => {
diff --git a/test/components/Waiting.spec.js b/test/components/Waiting.spec.js
index 4c9b40c83..441933615 100644
--- a/test/components/Waiting.spec.js
+++ b/test/components/Waiting.spec.js
@@ -1,6 +1,3 @@
-import 'jsdom-global/register';
-
-/* eslint-env mocha */
import React from 'react';
import assert from 'assert';
import { mount } from 'enzyme';
diff --git a/test/mocha.opts b/test/mocha.opts
new file mode 100644
index 000000000..8ef75cbe7
--- /dev/null
+++ b/test/mocha.opts
@@ -0,0 +1,5 @@
+-r jsdom-global/register
+--compilers js:babel-register
+--require ignore-styles
+--recursive
+--timeout 10000