type-enforcer
Version:
Type enforcement library for javascript
79 lines (73 loc) • 1.63 kB
JavaScript
const _ = require('lodash');
const testRunnerConfig = require('test-runner-config');
const config = require('./testRunner.config.js');
const singleRun = process.argv.includes('--single-run');
const exclude = (file) => {
return {pattern: file, included: false};
};
const files = testRunnerConfig.getKarmaFiles(config, {
src: exclude
});
const preprocessors = {};
_.each(testRunnerConfig.getKarmaFiles(config, {
css: exclude,
src: exclude
}).files, (pattern) => {
if (pattern.included !== false) {
preprocessors[pattern] = ['webpack'];
}
});
const reporters = ['brief', 'coverage'];
if (singleRun) {
reporters.push('coveralls');
}
module.exports = function(config) {
config.set({
browsers: ['ChromeHeadless', 'FirefoxHeadless'],
customLaunchers: {
FirefoxHeadless: {
base: 'Firefox',
flags: ['-headless']
}
},
files: files.files,
frameworks: ['jasmine'],
preprocessors: preprocessors,
reporters: reporters,
briefReporter: {
renderOnRunCompleteOnly: singleRun
},
coverageReporter: {
type : 'lcov',
dir : 'coverage/'
},
webpack: {
mode: 'development',
module: {
rules: [{
test: /\.js$/,
enforce: 'pre',
exclude: /node_modules/,
use: [
{
loader: 'eslint-loader',
options: {
configFile: '.eslintrc.json',
cache: true,
emitWarning: true
}
}
]
}, {
test: /\.js/,
exclude: /node_modules/,
loader: 'babel-loader'
}]
},
watch: true
},
webpackServer: {
noInfo: true
}
});
};