taylor1791/promissory-arbiter

View on GitHub
karma.conf.js

Summary

Maintainability
B
6 hrs
Test Coverage
// Base karma configuration
module.exports = function karmaConfig (karma) {
  'use strict';
  var config = getConfig();

  if (process.env.CI) {
    var customLaunchers = getCustomLaunchers();
    config.concurrency = 5;
    config.sauceLabs = {testName: 'Promissory Arbiter Browser Support'};
    config.reporters.push('saucelabs');
    config.customLaunchers = customLaunchers;
    config.browsers = config.browsers.concat(Object.keys(customLaunchers));
    config.coverageReporter.type = 'lcov';
  }

  karma.set(config);

  function getConfig() {
    return {
      basePath: '',

      port: 9876,
      colors: true,
      logLevel: karma.LOG_INFO,

      autoWatch: true,
      singleRun: false,
      frameworks: ['jasmine'],
      browsers: ['PhantomJS'],
      reporters: ['progress', 'coverage'],

      files: [
        'node_modules/es6-promise/dist/es6-promise.js',
        'src/**/*.js'
      ],
      exclude: [],

      preprocessors: {
        'src/*.js': ['coverage']
      },

      coverageReporter: {
        type: 'html',
        dir: 'docs/coverage'
      }
    };
  }

  function getCustomLaunchers() {
    var launchers = {
      sl_ie8: {
        browserName: 'internet explorer', platform: 'Windows XP', version: '8.0'
      },
      sl_ie9: {
        browserName: 'internet explorer', platform: 'Windows 7', version: '9.0'
      },
      sl_ie10: {
        browserName: 'internet explorer', platform: 'Windows 8', version: '10.0'
      },
      sl_ie11: {
        browserName: 'internet explorer', platform: 'Windows 8.1', version: '11.0'
      },
      sl_edge_13: {
        browserName: 'microsoftedge', platform: 'Windows 10', version: '13'
      },
      sl_edge_14: {
        browserName: 'microsoftedge', platform: 'Windows 10', version: '14'
      },
      sl_safari_windows: {
        browserName: 'safari', platform: 'Windows 7', version: '5.1'
      },
      sl_mountain_lion: {
        browserName: 'safari', platform: 'OS X 10.8', version: '6'
      },
      sl_mavericks: {
        browserName: 'safari', platform: 'OS X 10.9', version: '7'
      },
      sl_yosemite: {
        browserName: 'safari', platform: 'OS X 10.10', version: '8'
      },
      sl_capitan: {
        browserName: 'safari', platform: 'OS X 10.11', version: '9'
      },
      sl_firefox_legacy: {
        browserName: 'firefox', platform: 'Windows XP', version: '4.0'
      },
      sl_firefox_prev: {
        browserName: 'firefox', platform: 'Linux', version: '44'
      },
      sl_firefox_curr: {
        browserName: 'firefox', platform: 'Linux', version: '45'
      },
      // sl_firefox_beta: {
      //   browserName: 'firefox', platform: 'Linux', version: 'beta'
      // },
      // sl_firefox_dev: {
      //   browserName: 'firefox', platform: 'Linux', version: 'dev'
      // },
      sl_chrome_legacy: {
        browserName: 'chrome', platform: 'Windows 7', version: '26'
      },
      sl_chrome_prev: {
        browserName: 'chrome', platform: 'Windows 10', version: '52'
      },
      sl_chrome_curr: {
        browserName: 'chrome', platform: 'Windows 10', version: '53'
      },
      // sl_chrome_beta: {
      //   browserName: 'chrome', platform: 'Linux', version: 'beta'
      // },
      // sl_chrome_dev: {
      //   browserName: 'chrome', platform: 'OS X 10.11', version: 'dev'
      // },
    };

    Object.keys(launchers).forEach(function(key) {
      launchers[key].base = 'SauceLabs';
    });

    return launchers;
  }
}