in dev-utils/karma.js [109:192]
function prepareConfig(config, packageName) {
const globalConfig = getGlobalConfig(packageName)
console.log('Global test Configuration: ', globalConfig)
const { agentConfig, testConfig } = globalConfig
const { isCI, sauceLabs: isSauce } = testConfig
let buildId = `ApmJs-${agentConfig.name}`
if (isCI) {
console.log('prepareConfig: Run in Jenkins')
buildId =
buildId +
' - Jenkins #' +
process.env.BUILD_NUMBER +
' (' +
process.env.BRANCH_NAME +
') Elastic Stack ' +
process.env.STACK_VERSION +
' Scope ' +
process.env.SCOPE
config.plugins.push('karma-chrome-launcher')
if (!isSauce) {
config.browsers = ['ChromeHeadlessNoSandbox']
config.customLaunchers = {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: [
'--no-sandbox', // required to run without privileges in docker
'--user-data-dir=/tmp/chrome-test-profile',
'--disable-web-security'
]
}
}
}
config.plugins.push('karma-junit-reporter')
config.reporters.push('junit')
config.junitReporter = {
outputDir: 'reports'
}
} else {
console.log('prepareConfig: Run in Default enviroment')
config.plugins.push('karma-chrome-launcher')
config.browsers.push('Chrome')
}
/**
* Add coverage reports and plugins required for all environments
*/
if (config.coverage) {
config.plugins.push('karma-coverage', 'karma-coverage-istanbul-reporter')
config.reporters.push('coverage')
if (config.webpack) {
const babelPlugins = config.webpack.module.rules[0].options.plugins
babelPlugins.push('istanbul')
}
config.coverageReporter = {
includeAllSources: true,
reporters: [
{ type: 'cobertura', file: 'coverage-' + buildId + '-report.xml' },
{ type: 'lcov' },
{ type: 'text-summary' }
],
dir: 'coverage/'
}
}
if (isSauce) {
console.log('prepareConfig: Run in SauceLab mode')
config.sauceLabs.build = buildId
console.log('saucelabs.build:', buildId)
if (isCI) {
config.sauceLabs.tags = [testConfig.branch, process.env.STACK_VERSION]
} else if (testConfig.branch === 'main') {
config.sauceLabs.tags = [testConfig.branch]
}
config.reporters.push('dots', 'saucelabs')
config.browsers = Object.keys(config.customLaunchers)
config.transports = ['polling']
}
return config
}