80 lines
2.0 KiB
JavaScript
80 lines
2.0 KiB
JavaScript
|
'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);
|
||
|
};
|