var webpackConfig = require('./webpack.config.js'); delete webpackConfig.entry; delete webpackConfig.output; webpackConfig.devtool = 'inline-source-map'; webpackConfig.plugins = []; // Karma configuration // Generated on Tue Aug 22 2017 13:37:43 GMT+0200 (CEST) module.exports = function(config) { let baseConfig = { // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['jasmine'], // list of files / patterns to load in the browser files: [ {pattern: 'client/test_index.js', watched: false} ], // list of files to exclude exclude: [], webpack: webpackConfig, webpackMiddleware: { stats: 'errors-only' }, webpackServer: { noInfo: true }, // preprocess matching files before serving them to the browser // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor preprocessors: { './client/test_index.js': ['webpack', 'sourcemap'] }, // test results reporter to use // possible values: 'dots', 'progress' // available reporters: https://npmjs.org/browse/keyword/karma-reporter reporters: ['progress'], // web server port port: 9876, // enable / disable colors in the output (reporters and logs) colors: true, // level of logging // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG logLevel: config.LOG_INFO, // enable / disable watching file and executing tests whenever any file changes autoWatch: true, // start these browsers // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher browsers: [], // Continuous Integration mode // if true, Karma captures browsers, runs the tests and exits singleRun: false, // Concurrency level // how many browser should be started simultaneous concurrency: Infinity, plugins: [ 'karma-jasmine', 'karma-webpack', 'karma-chrome-launcher', 'karma-firefox-launcher', 'karma-sourcemap-loader' ] }; let browserConfig; if (process.env.FIREFOX_BIN) { browserConfig = { browsers: ['FirefoxHeadless'], customLaunchers: { FirefoxHeadless: { base: 'Firefox', flags: ['-headless'] } } }; } else { browserConfig = { browsers: ['ChromeNoSandboxHeadless'], customLaunchers: { ChromeNoSandboxHeadless: { base: 'Chrome', flags: [ '--no-sandbox', // See https://chromium.googlesource.com/chromium/src/+/lkgr/headless/README.md '--headless', '--disable-gpu', // Without a remote debugging port, Google Chrome exits immediately. ' --remote-debugging-port=9222' ] } } }; } Object.assign(baseConfig, browserConfig); config.set(baseConfig); };