diff options
Diffstat (limited to '.config/karma.conf.js')
-rw-r--r-- | .config/karma.conf.js | 149 |
1 files changed, 55 insertions, 94 deletions
diff --git a/.config/karma.conf.js b/.config/karma.conf.js index 61fe206..57cf14f 100644 --- a/.config/karma.conf.js +++ b/.config/karma.conf.js @@ -1,101 +1,62 @@ // Karma configuration -// Generated on Tue Oct 04 2016 13:53:46 GMT+0200 (CEST) - -module.exports = function(config) { - config.set({ - - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '../', - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], +const karmaCommon = require('./karma.conf.common.js') + +let chromeBin = 'ChromeHeadless' +if (process.platform === 'linux') { + // We need to choose either Chrome or Chromium. + // Canary is not available on linux. + // If we do not find Chromium then we can deduce that + // either Chrome is installed or there is no Chrome variant at all, + // in which case karma-chrome-launcher will output an error. + // If `which` finds nothing it will throw an error. + const { execSync } = require('child_process') + + try { + if (execSync('which chromium-browser')) chromeBin = 'ChromiumHeadless' + } catch (e) {} +} - // list of files / patterns to load in the browser - files: [ - '.config/pretest.js', - 'spec/RAFPlugin.js', - { - pattern: 'spec/fixtures/fixture.css', - included: false, - served: true +module.exports = function (config) { + config.set( + Object.assign(karmaCommon(config), { + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + 'dist/svg.js': ['coverage'] }, - { - pattern: 'spec/fixtures/fixture.svg', - included: false, - served: true - }, - { - pattern: 'spec/fixtures/pixel.png', - included: false, - served: true - }, - 'dist/svg.js', - 'spec/spec/*.js' - ], - - proxies: { - '/fixtures/': '/base/spec/fixtures/' - }, - - - // list of files to exclude - exclude: [], - - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - 'dist/svg.js': ['coverage'] - }, - - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress', 'coverage'], + // this specifies which plugins karma should load + // by default all karma plugins, starting with `karma-` will load + // so if you are really puzzled why something isn't working, then comment + // out plugins: [] - it's here to make karma load faster + // get possible karma plugins by `ls node_modules | grep 'karma-*'` + plugins: [ + 'karma-chrome-launcher', + 'karma-coverage', + 'karma-firefox-launcher', + 'karma-jasmine', + ], + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress', 'coverage'], + + // configure the coverage reporter + coverageReporter: { + // Specify a reporter type. + type: 'lcov', + dir: 'coverage/', + subdir: function(browser) { + // normalization process to keep a consistent browser name accross different OS + return browser.toLowerCase().split(/[ /-]/)[0]; // output the results into: './coverage/firefox/' + } + }, - // configure the coverage reporter - coverageReporter: { - // Specify a reporter type. - type: 'lcov', - dir: 'coverage/', - subdir: function(browser) { - // normalization process to keep a consistent browser name accross different OS - return browser.toLowerCase().split(/[ /-]/)[0]; // output the results into: './coverage/firefox/' - } - }, - - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: false, - - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['ChromeHeadless', 'FirefoxHeadless'], - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false, - - // Concurrency level - // how many browser should be started simultaneous - concurrency: Infinity - }) + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: [chromeBin, 'FirefoxHeadless'], + }) + ) } |