89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			89 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
// Karma configuration
 | 
						|
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) {}
 | 
						|
}
 | 
						|
 | 
						|
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']
 | 
						|
    })
 | 
						|
  )
 | 
						|
}
 |