Skip to content

Commit

Permalink
update karma tests for webpack 2
Browse files Browse the repository at this point in the history
  • Loading branch information
sghall committed Apr 12, 2017
1 parent 19c77bc commit b916281
Showing 1 changed file with 81 additions and 35 deletions.
116 changes: 81 additions & 35 deletions test/karma.conf.js
Original file line number Diff line number Diff line change
@@ -1,38 +1,32 @@
// @flow weak

const path = require('path');

const argv = process.argv.slice(2);
const opts = {
grep: undefined,
coverage: true,
const browserStack = {
username: process.env.BROWSERSTACK_USERNAME,
accessKey: process.env.BROWSERSTACK_ACCESS_KEY,
build: `resonance-${(new Date()).toISOString()}`,
};

argv.forEach((arg) => {
if (/^--grep=/.test(arg)) {
opts.grep = arg.replace('--grep=', '').trim();
opts.coverage = false;
}
});

// Karma configuration
module.exports = function createConfig(config) {
config.set({
autoWatch: false,
module.exports = function setKarmaConfig(config) {
const baseConfig = {
basePath: '../',
browsers: ['PhantomJS_Sized'],
client: {
mocha: {
grep: opts.grep,
},
},
browsers: [
'PhantomJS_Sized',
],
// to avoid DISCONNECTED messages on travis
browserDisconnectTimeout: 60000, // default 2000
browserDisconnectTolerance: 1, // default 0
browserNoActivityTimeout: 300000, // default 10000
colors: true,
frameworks: ['mocha'],
frameworks: [
'mocha',
],
files: [
'node_modules/babel-polyfill/dist/polyfill.js',
{
pattern: 'test/karma.tests.js',
watched: false,
watched: true,
served: true,
included: true,
},
Expand All @@ -44,30 +38,32 @@ module.exports = function createConfig(config) {
'karma-webpack',
'karma-mocha-reporter',
],
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
/**
* possible values:
* - config.LOG_DISABLE
* - config.LOG_ERROR
* - config.LOG_WARN
* - config.LOG_INFO
* - config.LOG_DEBUG
*/
logLevel: config.LOG_INFO,
port: 9876,
preprocessors: {
'test/karma.tests.js': ['webpack', 'sourcemap'],
},
reporters: ['dots'],
singleRun: false,
webpack: {
devtool: 'inline-source-map',
module: {
loaders: [
rules: [
{
test: /\.js$/,
loader: 'babel',
loader: 'babel-loader',
exclude: /node_modules/,
query: {
cacheDirectory: true,
},
},
{
test: /\.json$/,
loader: 'json',
},
],
noParse: [
/node_modules\/sinon\//,
Expand All @@ -78,10 +74,10 @@ module.exports = function createConfig(config) {
resonance: path.resolve(__dirname, '../src'),
sinon: 'sinon/pkg/sinon.js',
},
extensions: ['', '.js', '.jsx', '.json'],
modulesDirectories: [
extensions: ['.js'],
modules: [
path.join(__dirname, '../'),
'node_modules',
'./',
],
},
externals: {
Expand All @@ -91,6 +87,9 @@ module.exports = function createConfig(config) {
'text-encoding': 'window',
'react/addons': true, // For enzyme
},
node: {
fs: 'empty',
},
},
webpackServer: {
noInfo: true,
Expand All @@ -106,5 +105,52 @@ module.exports = function createConfig(config) {
},
},
},
});
};

let newConfig = baseConfig;

if (browserStack.accessKey) {
newConfig = Object.assign({}, baseConfig, {
browserStack,
browsers: baseConfig.browsers.concat([
'BrowserStack_Chrome',
'BrowserStack_Firefox',
'BrowserStack_Safari',
// 'BrowserStack_IE',
]),
plugins: baseConfig.plugins.concat(['karma-browserstack-launcher']),
customLaunchers: Object.assign({}, baseConfig.customLaunchers, {
BrowserStack_Chrome: {
base: 'BrowserStack',
os: 'OS X',
os_version: 'Sierra',
browser: 'chrome',
browser_version: 'latest',
},
BrowserStack_Firefox: {
base: 'BrowserStack',
os: 'Windows',
os_version: '10',
browser: 'firefox',
browser_version: 'latest',
},
BrowserStack_Safari: {
base: 'BrowserStack',
os: 'OS X',
os_version: 'Yosemite',
browser: 'safari',
browser_version: 'latest',
},
// BrowserStack_IE: {
// base: 'BrowserStack',
// os: 'Windows',
// os_version: '10',
// browser: 'edge',
// browser_version: 'latest',
// },
}),
});
}

config.set(newConfig);
};

0 comments on commit b916281

Please sign in to comment.