const webpackConfig = require('./webpack.config') const browsers = require('./browsers') const useCloud = process.env.USE_CLOUD === 'true' const browserStackUserName = process.env.BROWSER_STACK_USERNAME const browserStackAccessKey = process.env.BROWSER_STACK_ACCESS_KEY const isTravis = process.env.TRAVIS const travisBuildNumber = process.env.TRAVIS_BUILD_NUMBER const travisBuildId = process.env.TRAVIS_BUILD_ID const travisJobNumber = process.env.TRAVIS_JOB_NUMBER module.exports = (config) => { config.set({ customLaunchers: browsers, browsers: ['Chrome'], frameworks: ['mocha'], files: [ 'node_modules/es5-shim/es5-shim.js', 'node_modules/es5-shim/es5-sham.js', 'tests.webpack.js', ], preprocessors: { 'tests.webpack.js': ['webpack', 'sourcemap'], }, webpack: Object.assign(webpackConfig, { devtool: 'inline-source-map' }), webpackServer: { noInfo: true }, reporters: ['mocha'] }) if (useCloud) { Object.assign(config, { browsers: Object.keys(browsers), browserDisconnectTolerance: 3, // My current OS plan allows max 2 parallel connections. concurrency: 2, retryLimit: 3 }) config.browserStack = { username: browserStackUserName, accessKey: browserStackAccessKey, captureTimeout: 10000 } if (isTravis) { Object.assign(config.browserStack, { build: `TRAVIS #${travisBuildNumber} (${travisBuildId})`, name: travisJobNumber }) } } }