| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 | 'use strict';var ip = require('ip');var browserConfig = require('./browsers');var browserStack = process.env.BROWSER === 'true';module.exports = function (config) {  var conf = {    basePath: '../',    frameworks: ['qunit'],    plugins: ['karma-qunit'],    // list of files / patterns to load in the browser    files: [      'js/tests/vendor/jquery.min.js',      'js/tooltip.js',      'js/!(tooltip).js',      'js/tests/unit/*.js'    ],    reporters: ['dots'],    port: 9876,    colors: true,    // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG    logLevel: config.LOG_ERROR || config.LOG_WARN,    autoWatch: false,    singleRun: true,    concurrency: Infinity,    client: {      qunit: {        showUI: true      }    }  };  if (browserStack) {    conf.hostname = ip.address();    conf.browserStack = {      username: process.env.BROWSER_STACK_USERNAME,      accessKey: process.env.BROWSER_STACK_ACCESS_KEY,      build: 'bootstrap-v3-' + new Date().toISOString(),      project: 'Bootstrap v3',      retryLimit: 1    };    conf.plugins.push('karma-browserstack-launcher');    conf.customLaunchers = browserConfig.list;    conf.browsers = browserConfig.keys;    conf.reporters.push('BrowserStack');  } else {    conf.frameworks.push('detectBrowsers');    conf.plugins.push(      'karma-chrome-launcher',      'karma-firefox-launcher',      'karma-detect-browsers'    );    conf.detectBrowsers = {      usePhantomJS: false,      postDetection: function (availableBrowser) {        if (typeof process.env.TRAVIS_JOB_ID !== 'undefined' || availableBrowser.includes('Chrome')) {          return ['ChromeHeadless'];        }        if (availableBrowser.includes('Firefox')) {          return ['FirefoxHeadless'];        }        throw new Error('Please install Firefox or Chrome');      }    };    conf.customLaunchers = {      FirefoxHeadless: {        base: 'Firefox',        flags: ['-headless']      }    };  }  config.set(conf);};
 |