maykinmedia/consumerjs

View on GitHub
karma.conf.js

Summary

Maintainability
A
3 hrs
Test Coverage
var clone = require('clone');
var paths = require('./build/paths');
var webpackConfig = clone(require('./webpack.config.js'));
 
 
// Add istanbul-instrumenter to webpack configuration
webpackConfig.module.rules.push({
test: /\.js$/,
include: __dirname + '/' + paths.jsSrcDir,
loader: 'istanbul-instrumenter-loader',
enforce: 'post',
 
options: {
esModules: true
}
});
 
webpackConfig.output.filename += '.test';
webpackConfig.plugins = undefined;
webpackConfig.externals = undefined;
webpackConfig.target = undefined;
 
 
// The preprocessor config
var preprocessors = {};
preprocessors[paths.jsSpecEntry] = [
'webpack'
]
 
 
function ConfigException(message) {
this.message = message;
this.name = 'ConfigException';
}
 
 
// The main configuration
Function `exports` has 92 lines of code (exceeds 25 allowed). Consider refactoring.
module.exports = function (config) {
if (process.env.CI && (!process.env.SAUCE_USERNAME || !process.env.SAUCE_ACCESS_KEY)) {
throw ConfigException('Make sure the SAUCE_USERNAME and SAUCE_ACCESS_KEY environment variables are set.')
}
 
// https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/
var customLaunchers = {
sl_chrome: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: 'latest'
},
sl_chrome_2: {
base: 'SauceLabs',
browserName: 'chrome',
platform: 'Windows 10',
version: 'latest-1'
},
sl_edge: {
base: 'SauceLabs',
browserName: 'MicrosoftEdge',
platform: 'Windows 10',
version: 'latest'
},
sl_edge_2: {
base: 'SauceLabs',
browserName: 'MicrosoftEdge',
platform: 'Windows 10',
version: '14.14393'
},
sl_firefox: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: 'latest'
},
sl_firefox_2: {
base: 'SauceLabs',
browserName: 'firefox',
platform: 'Windows 10',
version: 'latest-1'
},
sl_ie_11: {
base: 'SauceLabs',
browserName: 'internet explorer',
platform: 'Windows 8.1',
version: '11'
}
};
 
config.set({
frameworks: [
'jasmine-ajax',
'jasmine'
],
 
files: [
'node_modules/@babel/polyfill/dist/polyfill.js',
paths.jsSpecEntry
],
 
preprocessors: preprocessors,
 
webpack: webpackConfig,
 
webpackMiddleware: {
noInfo: true
},
 
hostname: 'localhost',
 
sauceLabs: {
testName: 'consumerjs browser testing',
// startConnect: false,
username: process.env.SAUCE_USERNAME,
accessKey: process.env.SAUCE_ACCESS_KEY,
tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER,
},
 
 
webpackMiddleware: {
noInfo: true
},
 
browserNoActivityTimeout: 200000,
captureTimeout: 200000,
colors: true,
concurrency: 5,
customLaunchers: customLaunchers,
retryLimit: 5,
singleRun: false,
 
browsers: (process.env.TRAVIS) ? Object.keys(customLaunchers) : ['Chrome', 'Firefox'],
reporters: (process.env.TRAVIS) ? ['spec', 'coverage', 'saucelabs', 'coveralls'] : ['spec', 'coverage'],
 
specReporter: {
suppressSkipped: true,
},
 
coverageReporter: {
dir: 'reports/jstests/',
reporters: [
{type: 'html'},
{type: 'text'},
{type: 'text-summary'},
]
},
});
}