Skip to content

Commit

Permalink
Add test for recent-projects widget
Browse files Browse the repository at this point in the history
  • Loading branch information
Surya Gaddipati committed Mar 17, 2015
1 parent afaea0d commit 477824b
Show file tree
Hide file tree
Showing 6 changed files with 96 additions and 23 deletions.
53 changes: 53 additions & 0 deletions karma.conf.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
var webpack = require('webpack');

module.exports = function (config) {
config.set({

browsers: [ process.env.CONTINUOUS_INTEGRATION ? 'Firefox' : 'Chrome' ],

singleRun: process.env.CONTINUOUS_INTEGRATION === 'true',

frameworks: [ 'mocha' ],

files: [
'tests.webpack.js'
],

preprocessors: {
'tests.webpack.js': [ 'webpack', 'sourcemap' ]
},

reporters: [ 'dots' ],

webpack: {
devtool: 'inline-source-map',
module: {
loaders: [
{
test: /\.less$/,
loader: 'style-loader!css-loader!less-loader'
},
{
test: /\.css$/,
loader: 'style-loader!css-loader'
},
{
test: /\.jsx?$/,
exclude: /node_modules/,
loaders: ['babel-loader?experimental']
}
]
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': JSON.stringify('test')
})
]
},

webpackServer: {
noInfo: true
}

});
};
21 changes: 10 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,31 @@
"babel-core": "latest",
"babel-loader": "latest",
"css-loader": "^0.9.1",
"expect": "^1.1.0",
"extract-text-webpack-plugin": "^0.3.8",
"jest-cli": "^0.2.2",
"karma": "^0.12.28",
"karma-chrome-launcher": "^0.1.7",
"karma-cli": "0.0.4",
"karma-firefox-launcher": "^0.1.3",
"karma-mocha": "^0.1.10",
"karma-sourcemap-loader": "^0.3.2",
"karma-webpack": "^1.3.1",
"less": "^2.4.0",
"less-loader": "^2.0.0",
"lesshat": "^3.0.2",
"minimist": "^1.1.0",
"mocha": "^2.0.1",
"react-hot-loader": "^1.1.1",
"react-tools": "latest",
"style-loader": "^0.8.3",
"webpack": "latest",
"webpack-dev-server": "latest"
},
"jest": {
"rootDir": "./src/main/jsx",
"scriptPreprocessor": "preprocessor.js",
"unmockedModulePathPatterns": [
"react"
],
"testFileExtensions": [
"jsx"
]
},
"scripts": {
"package": "npm install && webpack --release=true --colors --progress src/main/jsx/app.jsx",
"lint": "eslint src/main/jsx/**/*",
"watch": "./node_modules/webpack-dev-server/bin/webpack-dev-server.js --config webpack.config.dev.js --colors --progress --hot --inline --port 3000",
"test": "jest"
"test": "karma start"
}
}
4 changes: 4 additions & 0 deletions src/main/jsx/Flux.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -34,5 +34,9 @@ import JobStore from './stores/JobStore.jsx';
this.createStore('recentProjects', RecentProjectsStore, this);
this.createStore('job', JobStore, this);
}
getRecentProjectsFromServer(){
const actions = this.getActions('app');
actions.getRecentProjectsFromServer();
}

}
3 changes: 1 addition & 2 deletions src/main/jsx/components/recent_projects/RecentProjects.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,7 @@ var RecentProject = React.createClass({

var RecentProjectsWidget =React.createClass({
componentWillMount(){
const actions = this.props.flux.getActions('app');
actions.getRecentProjectsFromServer();
this.props.flux.getRecentProjectsFromServer();
},
render(){
var recentProjects = this.props.recentProjects.map(function (project) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,33 @@
* THE SOFTWARE.
*/

jest.dontMock('../RecentProjects.jsx');
describe('CheckboxWithLabel', function() {
it('changes the text after click', function() {
var React = require('react/addons');
var RecentProjects = require('../RecentProjects.jsx');
var TestUtils = React.addons.TestUtils;
import React from 'react/addons';
import expect from 'expect';
import RecentProjects from '../RecentProjects.jsx';
import {Flummox,Store} from 'flummox';

var RecentProjects = TestUtils.renderIntoDocument(
<RecentProjects url="url" />
);
class RecentProjectsStore extends Store{
constructor(flux){
super();
this.state = {recentProjects: []};
}
}
class Flux extends Flummox{
constructor(){
super();
this.createStore('recentProjects',RecentProjectsStore,this) ;
}
getRecentProjectsFromServer(){
this.getStore('recentProjects').setState({recentProjects:[]});
}

expect("change-me").toEqual('change-me');
}
var TestUtils = React.addons.TestUtils;
describe('RecentProjects', function() {
it('should load recent projects for the user on componentWillMount', function() {
const flux= new Flux();
var RecentProjectsWidget = TestUtils.renderIntoDocument(
<RecentProjects url="url" flux={flux}/>
);
});
});
2 changes: 2 additions & 0 deletions tests.webpack.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
var context = require.context('./src/main/jsx', true, /-test\.jsx?$/);
context.keys().forEach(context);

0 comments on commit 477824b

Please sign in to comment.