diff options
Diffstat (limited to '.config/karma.conf.cjs')
-rw-r--r-- | .config/karma.conf.cjs | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/.config/karma.conf.cjs b/.config/karma.conf.cjs new file mode 100644 index 0000000..7584c92 --- /dev/null +++ b/.config/karma.conf.cjs @@ -0,0 +1,88 @@ +// Karma configuration +const karmaCommon = require('./karma.conf.common.cjs') + +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) {} +} + +module.exports = function (config) { + config.set( + Object.assign(karmaCommon(config), { + files: [ + 'spec/RAFPlugin.js', + { + pattern: 'spec/fixtures/fixture.css', + included: false, + served: true + }, + { + pattern: 'spec/fixtures/pixel.png', + included: false, + served: true + }, + { + pattern: 'src/**/*.js', + included: false, + served: true, + type: 'modules' + }, + { + pattern: 'spec/helpers.js', + included: false, + served: true, + type: 'module' + }, + { + pattern: 'spec/setupBrowser.js', + included: true, + type: 'module' + }, + { + pattern: 'spec/spec/*/**/*.js', + included: true, + type: 'module' + } + ], + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + 'src/**/*.js': ['coverage'] + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ['progress', 'coverage'], + 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/' + }, + instrumenterOptions: { + istanbul: { + esModules: true + } + } + }, + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: [chromeBin, 'FirefoxHeadless'] + }) + ) +} |