text: var path = require('path');
  
  var absoluteBasePath = path.resolve(__dirname);
  
  /* global process */
  
  // configures browsers to run test against
  // any of [ 'ChromeHeadless', 'Chrome', 'Firefox', 'IE', 'PhantomJS' ]
  var browsers =
    (process.env.TEST_BROWSERS || 'PhantomJS')
      .replace(/^\s+|\s+$/, '')
      .split(/\s*,\s*/g)
      .map(function(browser) {
        if (browser === 'ChromeHeadless') {
          process.env.CHROME_BIN = require('puppeteer').executablePath();
  
          // workaround https://github.com/GoogleChrome/puppeteer/issues/290
          if (process.platform === 'linux') {
            return 'ChromeHeadless_Linux';
          }
        }
  
        return browser;
      });
  
  
  module.exports = function(karma) {
    karma.set({
  
      frameworks: [
        'mocha',
        'sinon-chai'
      ],
  
      files: [
        'test/suite.js'
      ],
  
      preprocessors: {
        'test/suite.js': [ 'webpack' ]
      },
  
      reporters: [ 'spec' ],
  
      browsers: browsers,
  
      customLaunchers: {
        ChromeHeadless_Linux: {
          base: 'ChromeHeadless',
          flags: [
            '--no-sandbox',
            '--disable-setuid-sandbox'
          ],
          debug: true
        }
      },
  
      client: {
        mocha: {
          timeout: 10000
        }
      },
  
      browserNoActivityTimeout: 30000,
  
      singleRun: true,
      autoWatch: false,
  
      webpack: {
        mode: 'development',
        module: {
          rules: [
            {
              test: /\.css|\.cmmn$/,
              use: 'raw-loader'
            }
          ]
        },
        resolve: {
          modules: [
            'node_modules',
            absoluteBasePath
          ]
        }
      }
    });
  };
  