Skip to content

Commit

Permalink
reorganize tests
Browse files Browse the repository at this point in the history
  • Loading branch information
jquense committed Oct 3, 2015
1 parent 31c5479 commit 133647a
Show file tree
Hide file tree
Showing 11 changed files with 75 additions and 69 deletions.
1 change: 1 addition & 0 deletions .eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
"eol-last": 2,
"dot-notation": [2, { "allowKeywords": true }],
"semi": [0, "never"],
"semi-spacing": 0,
"curly": 0,
"eqeqeq": [2, "allow-null"],
"no-undef": 2,
Expand Down
18 changes: 0 additions & 18 deletions _test-bootstrap.js

This file was deleted.

2 changes: 1 addition & 1 deletion karma.conf-ci.js
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ module.exports = function(config) {
'_test-bootstrap.js': ['webpack']
},

webpack: require('./webpack.configs').test,
webpack: require('./build/test.config'),
webpackServer: {
noInfo: true
},
Expand Down
11 changes: 4 additions & 7 deletions karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
'use strict';

module.exports = function (config) {


//console.log(process.env.TRAVIS_CI)

config.set({

Expand All @@ -15,7 +12,7 @@ module.exports = function (config) {
'./vendor/phantomjs-shim.js',
'./vendor/sinon-1.10.3.js',
'./vendor/jquery-1.11.2.min.js',
'_test-bootstrap.js',
'./test/index.js'
],

reporters: ['mocha'],
Expand All @@ -30,12 +27,12 @@ module.exports = function (config) {
browsers: [ 'PhantomJS'],

preprocessors: {
'_test-bootstrap.js': ['webpack', 'sourcemap']
'test/index.js': ['webpack', 'sourcemap']
},

webpack: require('./webpack.configs').test,
webpack: require('./build/test.config'),
webpackServer: {
noInfo: true
}
});
};
};
11 changes: 3 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@
"react-component"
],
"scripts": {
"test": "npm run lint && mocha -R spec ./test/server.js && node _test-versions.js",
"test": "npm run lint && npm run test:all",
"test:all": "mocha -R spec ./test/server.js && karma start karma.conf.js --single-run=true",
"tdd": "karma start",
"lint": "eslint src --ext .jsx --ext .js",
Expand All @@ -43,14 +43,14 @@
"build:lib": "npm run clean:lib && npm run compile:lib && npm run assets:lib",
"build:docs": "npm run clean:docs && npm run compile:docs && npm run assets:docs",
"build:dist": "npm run clean:dist && npm run compile:dist && npm run less && npm run assets:dist",
"build": "build:lib && build:dist & build:docs",
"build": "npm run build:lib && npm run build:dist & npm run build:docs",
"docs": "npm run clean:docs && webpack-dev-server --config ./build/docs.config.js --hot",
"dev": "webpack-dev-server --config ./build/dev.config.js --hot",

"major": "release major",
"minor": "release minor",
"patch": "release patch",
"alpha": "release --preid beta",
"alpha": "release --preid alpha",
"beta": "release --preid beta"
},
"homepage": "http://jquense.github.io/react-widgets/docs/",
Expand Down Expand Up @@ -112,12 +112,7 @@
"react-bootstrap": "0.24.5-react-pre.0",
"react-dom": "^0.14.0-beta3",
"react-router": "^1.0.0-beta3",
<<<<<<< HEAD
"react-widgets-globalize-localizer": "^1.0.0-alpha",
=======
"react-widgets-globalize-localizer": "file:../react-widgets-globalize-localizer",
"release-script": "^0.2.7",
>>>>>>> reset version and release scripts
"rimraf": "^2.4.2",
"scriptjs": "^2.5.7",
"style-loader": "^0.12.3",
Expand Down
4 changes: 2 additions & 2 deletions src/Multiselect.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ var Multiselect = React.createClass({
<div>
{ shouldRenderPopup && [
<List ref="list"
key='0'
key={0}
{...listProps}
readOnly={!!readOnly}
disabled={!!disabled}
Expand All @@ -299,7 +299,7 @@ var Multiselect = React.createClass({
}}
/>,
shouldShowCreate &&
<ul role='listbox' id={createID} className="rw-list rw-multiselect-create-tag" key='1'>
<ul key={1} role='listbox' id={createID} className="rw-list rw-multiselect-create-tag">
<li onClick={this._onCreate.bind(null, searchTerm)}
role='option'
id={createOptionID}
Expand Down
3 changes: 2 additions & 1 deletion src/util/configuration.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@ import animate from './dom/animate';
function error(){
throw new Error(
'[React Widgets] You are attempting to use a widget that requires localization (DateTimePicker, NumberPicker)' +
'but there is no localizer set. IN order to use these widgets please install a localizer')
'but there is no localizer set. In order to use these widgets please install a localizer')
}

let dummy = {
formats: error,
parse: error,
format:error,
firstOfWeek: error
Expand Down
1 change: 1 addition & 0 deletions test/.eslintrc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"$": true,
"sinon": true,
"expect": true,
"sinon": true,
"__REACT_VERSION__": true
}
}
35 changes: 18 additions & 17 deletions _test-versions.js → test/index-ci.js
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
'use strict';
var server = require('karma').server
var Server = require('karma').Server
, webpack = require('webpack')
, webpackConfig = require('./webpack.configs').test;
, webpackConfig = require('../build/test.config');

var plugins = webpackConfig.plugins || [];

webpackConfig.externals = {
'react': 'window.React',
'react/addons': 'window.React'
'react': 'window.React',
'react-dom': 'window.React',
'react/addons': 'window.React',
'react-dom/server': 'window.React'
}


var SUPPORTED_VERSIONS = ["0.12.2", "0.13.0"];
var SUPPORTED_VERSIONS = ['0.14.0-rc'];


series(SUPPORTED_VERSIONS, function(version, idx, next){
console.log('-------------------------------------------');
console.log('------- Testing React version: ' + version );
console.log('-------------------------------------------');

server.start(
config(version)
, function(exitCode) {
if ( exitCode )
process.exit(exitCode)
var server = new Server(config(version), function(exitCode) {
if ( exitCode )
process.exit(exitCode)

next();
});
}, function(){
process.exit(0)
next();
});


server.start();
})

function config(version){

webpackConfig.plugins = plugins.concat(
new webpack.DefinePlugin({
'__REACT_VERSION__': JSON.stringify(version),
'__REACT_VERSION__': JSON.stringify(version)
})
)

Expand All @@ -50,7 +51,7 @@ function config(version){
'https://cdnjs.cloudflare.com/ajax/libs/react/' + version + '/react-with-addons.js',
'./vendor/sinon-1.10.3.js',
'./vendor/jquery-1.11.2.min.js',
'_test-bootstrap.js'
'./test/index.js'
],

reporters: ['mocha'],
Expand All @@ -65,7 +66,7 @@ function config(version){
browsers: ['PhantomJS'],

preprocessors: {
'_test-bootstrap.js': ['webpack']
'test/index.js': ['webpack']
},

webpack: webpackConfig,
Expand Down
21 changes: 21 additions & 0 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
'use strict';
var React = require('react');
var widgetHelpers = require('../src/util/widgetHelpers')
var globalize = require('globalize')
var configure = require('../src/configure')
var localizers = require('../src/globalize-localizers')

configure.setLocalizers(localizers(globalize))

//disable this particular optimization
sinon.stub(widgetHelpers, 'isFirstFocusedRender', ()=> true)

var testsContext = require.context('../test', true, /\.browser\.(js$|jsx$)/);

if ( typeof __REACT_VERSION__ !== 'undefined' ) {
it('Ensure we are testing against the correct version of React: ' + __REACT_VERSION__, ()=> {
expect(React.version).to.equal(__REACT_VERSION__)
})
}

testsContext.keys().forEach(testsContext);
37 changes: 22 additions & 15 deletions test/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,20 +3,27 @@

require('babel-core/register')()


var assert = require('assert')
var React = require('react');
var renderToString = require('react-dom/server').renderToString
var globalize = require('globalize')
var configure = require('../src/configure')
var localizers = require('../src/globalize-localizers')

configure.setLocalizers(localizers(globalize))

var components = [
'Calendar',
'Combobox',
'DateTimePicker',
'DropdownList',
'Multiselect',
'SelectList',
'Calendar',
'Combobox',
'DateTimePicker',
'DropdownList',
'Multiselect',
'SelectList',
'List',
'ListGroupable',
'ReplaceTransitionGroup',
'NumberPicker',
'ReplaceTransitionGroup',
'NumberPicker'
];

describe('server rendering', function() {
Expand All @@ -28,7 +35,7 @@ describe('server rendering', function() {
var Type = require('../src/' + file + '.jsx')

assert.doesNotThrow(function(){
var comp = React.renderToString( React.createElement(Type) );
var comp = renderToString( React.createElement(Type) );

assert.ok(typeof comp === 'string')
})
Expand All @@ -41,13 +48,13 @@ describe('server rendering', function() {
var Type = require('../src/Popup.jsx')

assert.doesNotThrow(function(){
var comp = React.renderToString(
React.createElement(Type, { onRequestClose: function(){} },
var comp = renderToString(
React.createElement(Type, { onRequestClose: function(){} },
React.createElement('div')
)
)
)
)

assert.ok(typeof comp === 'string')
})
})
})
});

0 comments on commit 133647a

Please sign in to comment.