1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- '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);
- };
|