text: var path = require('path');
  
  var singleStart = process.env.SINGLE_START;
  
  // configures browsers to run test against
  // any of [ 'ChromeHeadless', 'Chrome', 'Firefox ]
  var browsers = (process.env.TEST_BROWSERS || 'ChromeHeadless').split(',');
  
  // use puppeteer provided Chrome for testing
  process.env.CHROME_BIN = require('puppeteer').executablePath();
  
  var basePath = '.';
  
  var absoluteBasePath = path.resolve(path.join(__dirname, basePath));
  
  var suite = 'test/testBundle.js';
  
  
  module.exports = function(karma) {
  
    var config = {
  
      basePath,
  
      frameworks: [
        'mocha',
        'sinon-chai'
      ],
  
      files: [
        suite
      ],
  
      preprocessors: {
        [ suite ]: [ 'webpack', 'env' ]
      },
  
      reporters: [ 'progress' ],
  
      browsers,
  
      browserNoActivityTimeout: 30000,
  
      singleRun: true,
      autoWatch: false,
  
      webpack: {
        mode: 'development',
        module: {
          rules: [
            {
              test: /\.css|\.xml$/,
              use: 'raw-loader'
            },
            {
              test: /\.(woff(2)?|ttf|eot|svg)(\?v=\d+\.\d+\.\d+)?$/,
              use: [ 'file-loader' ],
            }
          ]
        },
        resolve: {
          mainFields: [
            'dev:module',
            'browser',
            'module',
            'main'
          ],
          modules: [
            'node_modules',
            absoluteBasePath
          ]
        },
        devtool: 'eval-source-map'
      }
    };
  
    if (singleStart) {
      config.browsers = [].concat(config.browsers, 'Debug');
      config.envPreprocessor = [].concat(config.envPreprocessor || [], 'SINGLE_START');
    }
  
    karma.set(config);
  };
  