Add testing infrastructure using jest

Added simple test to illustrate how to use jest with react.
This commit is contained in:
Joey Payne 2016-03-03 14:32:30 -07:00
commit e53cbd0fc6
4 changed files with 58 additions and 15 deletions

View file

@ -35,25 +35,13 @@ String.prototype.trunc = String.prototype.trunc || function(n){
}; };
const { const {
AppBar,
AppCanvas,
FontIcon,
IconButton, IconButton,
EnhancedButton,
NavigationClose,
FloatingActionButton,
Menu,
MenuItem, MenuItem,
Mixins,
RaisedButton,
FlatButton,
Popover,
Badge, Badge,
TextField, TextField,
Dialog,
Styles, Styles,
LeftNav, Paper
Paper} = mui } = mui
const DefaultRawTheme = Styles.LightRawTheme const DefaultRawTheme = Styles.LightRawTheme

View file

@ -0,0 +1,17 @@
jest.autoMockOff()
import React from 'react'
import ReactDOM from 'react-dom'
import TestUtils from 'react-addons-test-utils'
const EntrySelector = require('../EntrySelector').default
describe('EntrySelector', () => {
it('test jest', () => {
var entrySelector = TestUtils.renderIntoDocument(
<EntrySelector id="entry-selector" className="left inline fill-height" />
)
expect(entrySelector.state.entries.length).toEqual(0)
})
})

12
jest/preprocessor.js Normal file
View file

@ -0,0 +1,12 @@
var babelJest = require('babel-jest');
var webpackAlias = require('jest-webpack-alias');
module.exports = {
process: function(src, filename) {
if (filename.indexOf('node_modules') === -1) {
src = babelJest.process(src, filename);
src = webpackAlias.process(src, filename);
}
return src;
}
};

View file

@ -21,6 +21,7 @@
}, },
"client_certificate": "", "client_certificate": "",
"scripts": { "scripts": {
"test": "jest",
"dev": "webpack-dev-server --progress --colors --port 8090", "dev": "webpack-dev-server --progress --colors --port 8090",
"serve": "./node_modules/.bin/http-server -p 8080", "serve": "./node_modules/.bin/http-server -p 8080",
"start": "npm run serve | npm run dev", "start": "npm run serve | npm run dev",
@ -149,6 +150,7 @@
"main_html": "index.html", "main_html": "index.html",
"devDependencies": { "devDependencies": {
"babel-core": "^6.5.1", "babel-core": "^6.5.1",
"babel-jest": "*",
"babel-loader": "^6.2.2", "babel-loader": "^6.2.2",
"babel-preset-es2015": "^6.5.0", "babel-preset-es2015": "^6.5.0",
"babel-preset-react": "^6.5.0", "babel-preset-react": "^6.5.0",
@ -157,10 +159,34 @@
"babel-preset-stage-2": "^6.5.0", "babel-preset-stage-2": "^6.5.0",
"babel-preset-stage-3": "^6.5.0", "babel-preset-stage-3": "^6.5.0",
"http-server": "^0.8.4", "http-server": "^0.8.4",
"jest-cli": "*",
"jest-webpack-alias": "^2.2.0",
"react-addons-test-utils": "^0.14.7",
"redux-devtools": "^3.1.1", "redux-devtools": "^3.1.1",
"webpack": "*", "webpack": "*",
"webpack-dev-server": "^1.11.0" "webpack-dev-server": "^1.11.0"
}, },
"keywords": [], "keywords": [],
"node_main": "" "node_main": "",
"jest": {
"scriptPreprocessor": "<rootDir>/jest/preprocessor.js",
"unmockedModulePathPatterns": [
"<rootDir>/node_modules/react",
"<rootDir>/node_modules/material-ui",
"<rootDir>/node_modules/react-dom",
"<rootDir>/node_modules/react-addons-test-utils",
"<rootDir>/node_modules/fbjs"
],
"testFileExtensions": [
"jsx",
"js",
"es6"
],
"moduleFileExtensions": [
"js",
"jsx",
"json",
"es6"
]
}
} }