Browse Source

Allow setting karma middleware options as overridable (#160)

v6-dev
Eli Perelman 8 years ago
committed by GitHub
parent
commit
3f90dfdfa3
  1. 22
      packages/neutrino-preset-karma/index.js
  2. 6
      packages/neutrino/bin/test.js

22
packages/neutrino-preset-karma/index.js

@ -2,10 +2,9 @@ const { Server } = require('karma');
const merge = require('deepmerge');
const { join } = require('path');
module.exports = (neutrino) => {
neutrino.on('test', ({ files, watch }) => {
module.exports = (neutrino, tap) => {
const tests = join(neutrino.options.tests, '**/*_test.js');
const sources = join(neutrino.options.source, '**/*.js');
const sources = join(neutrino.options.source, '**/*.js*');
const defaults = {
plugins: [
require.resolve('karma-webpack'),
@ -38,15 +37,20 @@ module.exports = (neutrino) => {
]
}
};
const karma = merge.all([
defaults,
neutrino.options.karma || {},
{
Object.assign(neutrino.options, {
karma: merge(defaults, neutrino.options.karma || {})
});
neutrino.on('test', ({ files, watch }) => {
const base = typeof tap === 'function' ?
tap(neutrino.options.karma) :
neutrino.options.karma;
const karma = merge(base, {
singleRun: !watch,
autoWatch: watch,
webpack: neutrino.config.toConfig()
}
]);
});
delete karma.webpack.plugins;

6
packages/neutrino/bin/test.js

@ -4,4 +4,8 @@ module.exports = (middleware, options) => test(middleware, options)
.fork((err) => {
console.error(err.stack || err);
process.exit(1);
}, Function.prototype);
}, () => {
// Some test runners do not cleanly exit after resolving their promise.
// Force exit once we get here.
process.exit(0);
});

Loading…
Cancel
Save