diff --git a/karma.conf.js b/karma.conf.js index 5da685941..aac97b8db 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,6 +1,17 @@ // Karma configuration file, see link for more information // https://karma-runner.github.io/1.0/config/configuration-file.html +const DEFAULT_BROWSERS = ['Firefox']; + +function configuredBrowsers(envValue) { + if (!envValue) { + return DEFAULT_BROWSERS; + } + + const browsers = envValue.split(',').map((browser) => browser.trim()).filter(Boolean); + return browsers.length ? browsers : DEFAULT_BROWSERS; +} + module.exports = function (config) { config.set({ basePath: '', @@ -27,7 +38,9 @@ module.exports = function (config) { colors: true, logLevel: config.LOG_INFO, autoWatch: true, - browsers: ['Firefox'], + browsers: configuredBrowsers(process.env.KARMA_BROWSERS), singleRun: false }); }; + +module.exports.configuredBrowsers = configuredBrowsers; diff --git a/policy-tests/check-karma-browsers.js b/policy-tests/check-karma-browsers.js new file mode 100644 index 000000000..e61b357a5 --- /dev/null +++ b/policy-tests/check-karma-browsers.js @@ -0,0 +1,14 @@ +const assert = require('assert'); +const karmaConfig = require('../karma.conf.js'); + +assert.deepStrictEqual(karmaConfig.configuredBrowsers(undefined), ['Firefox']); +assert.deepStrictEqual(karmaConfig.configuredBrowsers(''), ['Firefox']); +assert.deepStrictEqual(karmaConfig.configuredBrowsers('FirefoxHeadless'), ['FirefoxHeadless']); +assert.deepStrictEqual( + karmaConfig.configuredBrowsers('ChromeHeadless, FirefoxHeadless'), + ['ChromeHeadless', 'FirefoxHeadless'] +); +assert.deepStrictEqual( + karmaConfig.configuredBrowsers(' , FirefoxHeadless ,, '), + ['FirefoxHeadless'] +); diff --git a/policy-tests/run-all.js b/policy-tests/run-all.js index 3008df63d..ce541184a 100644 --- a/policy-tests/run-all.js +++ b/policy-tests/run-all.js @@ -1,2 +1,3 @@ require('./check-licenses.js'); require('./check-commit-log.js'); +require('./check-karma-browsers.js');