You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
77 lines
1.8 KiB
JavaScript
77 lines
1.8 KiB
JavaScript
import { argv } from 'yargs'
|
|
import config from '../config'
|
|
import webpackConfig from './webpack.config'
|
|
import _debug from 'debug'
|
|
|
|
const debug = _debug('app:karma')
|
|
debug('Create configuration.')
|
|
|
|
const karmaConfig = {
|
|
basePath: '../', // project root in relation to bin/karma.js
|
|
files: [
|
|
{
|
|
pattern: `./${config.dir_test}/test-bundler.js`,
|
|
watched: false,
|
|
served: true,
|
|
included: true
|
|
}
|
|
],
|
|
singleRun: !argv.watch,
|
|
frameworks: ['mocha'],
|
|
reporters: ['mocha'],
|
|
preprocessors: {
|
|
[`${config.dir_test}/test-bundler.js`]: ['webpack']
|
|
},
|
|
browsers: ['PhantomJS'],
|
|
webpack: {
|
|
devtool: 'cheap-module-source-map',
|
|
resolve: {
|
|
...webpackConfig.resolve,
|
|
alias: {
|
|
...webpackConfig.resolve.alias,
|
|
sinon: 'sinon/pkg/sinon.js'
|
|
}
|
|
},
|
|
plugins: webpackConfig.plugins,
|
|
module: {
|
|
noParse: [
|
|
/\/sinon\.js/
|
|
],
|
|
loaders: webpackConfig.module.loaders.concat([
|
|
{
|
|
test: /sinon(\\|\/)pkg(\\|\/)sinon\.js/,
|
|
loader: 'imports?define=>false,require=>false'
|
|
}
|
|
])
|
|
},
|
|
// Enzyme fix, see:
|
|
// https://github.com/airbnb/enzyme/issues/47
|
|
externals: {
|
|
...webpackConfig.externals,
|
|
'react/addons': true,
|
|
'react/lib/ExecutionEnvironment': true,
|
|
'react/lib/ReactContext': 'window'
|
|
},
|
|
sassLoader: webpackConfig.sassLoader
|
|
},
|
|
webpackMiddleware: {
|
|
noInfo: true
|
|
},
|
|
coverageReporter: {
|
|
reporters: config.coverage_reporters
|
|
}
|
|
}
|
|
|
|
if (config.globals.__COVERAGE__) {
|
|
karmaConfig.reporters.push('coverage')
|
|
karmaConfig.webpack.module.preLoaders = [{
|
|
test: /\.(js|jsx)$/,
|
|
include: new RegExp(config.dir_client),
|
|
loader: 'isparta',
|
|
exclude: /node_modules/
|
|
}]
|
|
}
|
|
|
|
// cannot use `export default` because of Karma.
|
|
module.exports = (cfg) => cfg.set(karmaConfig)
|