diff --git a/.babelrc b/.babelrc
new file mode 100644
index 0000000000..a9ce1369e6
--- /dev/null
+++ b/.babelrc
@@ -0,0 +1,3 @@
+{
+ "presets": ["react-native"]
+}
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000000..a77851d066
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,14 @@
+language: node_js
+sudo: true
+node_js:
+ - "4.4"
+ - "4.2"
+cache:
+ directories:
+ - node_modules
+before_install:
+ - npm install
+script:
+ - npm test
+after_script:
+ - npm run coverage
diff --git a/package.json b/package.json
index a457e16cb4..64b42f9116 100644
--- a/package.json
+++ b/package.json
@@ -4,7 +4,8 @@
"description": "react native datePicker component for both Android and IOS, useing DatePikcerAndroid, TimePickerAndroid and DatePickerIOS",
"main": "index.js",
"scripts": {
- "test": "echo \"Error: no test specified\" && exit 1",
+ "test": "node ./node_modules/.bin/istanbul cover ./node_modules/mocha/bin/_mocha ./test/*.test.js",
+ "coverage": "cat ./coverage/lcov.info | coveralls",
"changelog": "conventional-changelog -p angular -i CHANGELOG.md -s"
},
"repository": {
@@ -25,7 +26,18 @@
"moment": "2.x.x"
},
"devDependencies": {
- "cz-conventional-changelog": "^1.1.6"
+ "babel": "^6.5.2",
+ "babel-preset-react-native": "^1.8.0",
+ "chai": "^3.5.0",
+ "cz-conventional-changelog": "^1.1.6",
+ "enzyme": "^2.3.0",
+ "istanbul": "^1.0.0-alpha.2",
+ "mocha": "^2.5.2",
+ "react": "^0.14.8",
+ "react-addons-test-utils": "^0.14.8",
+ "react-dom": "^0.14.8",
+ "react-native": "^0.24.1",
+ "react-native-mock": "^0.2.0"
},
"config": {
"commitizen": {
diff --git a/test/index.test.js b/test/index.test.js
new file mode 100644
index 0000000000..77e53ebab7
--- /dev/null
+++ b/test/index.test.js
@@ -0,0 +1,15 @@
+import React, { View, Text, StyleSheet } from 'react-native';
+import { shallow } from 'enzyme';
+import Moment from 'moment';
+import DatePicker from '../index';
+import { expect } from 'chai';
+
+
+let icon = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEwAACxMBAJqcGAAABA9JREFUeJztm81vG0UYxp+ZdRzsqAmtjZBV81kKEmrPVEpDcSNRCSGkXihcOMIBCQTqH0CPDTlSCf4ApJLe2kpIUORGNBECWgVICyWtDXVKYpo6/og33vXOvhyCIMYrxjvZeJ1kfjfPvvO+zzya2X0VTQDNzoapTpyYnY3uLlWPGkS0lBjKvnrggB2kMBnT09MxU7AXiIgiwrqcyWQaKnmUDMhmv0+6EWsS4M/+PfRTFM6RkZGRZZV8fpmc/C5lw/mac+xbG3HnHI7Dx4aH//Sbi6sIEEbz/XWLB4CDNiLvquRSocmd9/5dPADw/REX76jkUjKAMdrfPkrPqORSqg96wmN0X/uYHCUDyOvoECm/T8Ksr2TAdqJj1xbOjJ9g+dyYW8in5188zmtPH2x5PvTzDPae/zRwgV4Ujr8Br/qpS+eJP/LYXTz51MnU2yc/6yRXRzug+OGpj/HlxbP0y4+PsnqtZ3cNN2sMN2fT+OLC2eLYB590NEcWsHBm/IQ7lX0LjrNxhd1CCLhT2TfvfjT+uixUagDL58b+u/imEG1xtnD9SNwQHdUXAsZvudOyXFID3EI+vf531bbR8BBgOQJVa/ObQT/13Tu398ryyXeAudISUzIbYB4CyHWwvKrUjfqiZDbAHI/6or0+M+vS9clfaEQtP20hwG7eaI/79TosD2OCxhYC7MZM2zi/PqNUP+J3gsE56OoU2J4EaHgUjAi4cgn82jcw+OZ/IAzOQTPfgu9Ogo4cAxGBX/4cmL2qVF/aByy8fLhlC9wzTZRWLc/YROwBJOMx3yL84Ld+6uKV/12jb8uSsTjife0bJ97Xh0Rscxe/GfV9HwHGgPTgLtQsG6bT/Kf4rmhU/Y8LIdb3bQCwdm4G+6MY7I+qTN8wQdbv2ba2W2gDwhYQNjveAOmLc6lcIVlML5N8cCjYPmC7oQ0IW0DY7HgDlDrBe0v3UTfNlrGBgTgeSiR64rkflAyomyYqlVrLGAcDEr3x3A87/ghoA8IWEDZK74CBgfjamVtHPB7vmed+0K1wt4T0KroP8D0D4X/ndR8QINqAsAWEje4DZAG6D9jm6D7A9wyE/53XfUCAaAPCFhA2ug+QBSzeL1HEMJSSh41wHDycTGysD1hZqQenqMvUVkxpjNSA4mLRJdp6zSARYbFYlF5flRpgNpr5wvwCtpIJRITC/B+wbOuWLFZ+U5TRueVyGXO38yhXqnA8bmn2CsJxUC5XMXcrh+VyBQDOyeZIvwKGsE47kehrq6uNx3+/Mx+Ezu7gUs7qN8ZkYdIdkMlkykDfqOvSD8Eo6wrXuMtGXzp0qCoL7Phq3cTEhLEnlX6FETsKRslu/o9QJ7iMuwxY4i77avL55y6cYqx79/c1Go1mq/IXVr8zUhJfa5MAAAAASUVORK5CYII=';
+
+describe('', () => {
+ it('should render stuff', () => {
+ const wrapper = shallow();
+ expect(wrapper.length).to.equal(1);
+ });
+});
diff --git a/test/mocha.opts b/test/mocha.opts
new file mode 100644
index 0000000000..0a76b8936d
--- /dev/null
+++ b/test/mocha.opts
@@ -0,0 +1,4 @@
+--colors
+--require ./node_modules/react-native-mock/mock.js
+--compilers js:babel-core/register
+--recursive