76 lines
2 KiB
JavaScript
76 lines
2 KiB
JavaScript
import { createRequire } from 'module'
|
|
import karma from 'karma'
|
|
|
|
const require = createRequire(import.meta.url)
|
|
|
|
export default function(filePaths, isDev, cliArgs) {
|
|
const filePathsWithSrcMaps = filePaths
|
|
.filter((filePath) => (
|
|
// TODO: must proper built dist files (HACK)
|
|
filePath.match(/[\\/]dist[\\/]/)
|
|
))
|
|
|
|
const files = [
|
|
require.resolve('jquery'),
|
|
require.resolve('jasmine-jquery'),
|
|
require.resolve('jquery-simulate'),
|
|
require.resolve('components-jqueryui'),
|
|
...filePaths,
|
|
...filePathsWithSrcMaps
|
|
.map((path) => ({
|
|
pattern: path.replace(/\.js$/, '.js.map'),
|
|
included: false,
|
|
})),
|
|
]
|
|
|
|
const preprocessors = filePathsWithSrcMaps.reduce((props, distFile) => (
|
|
Object.assign(props, { [distFile]: ['sourcemap'] })
|
|
), {})
|
|
|
|
return {
|
|
singleRun: !isDev,
|
|
autoWatch: isDev,
|
|
browsers: !isDev ? ['ChromeHeadless_custom'] : [],
|
|
client: { cliArgs }, // access via `window.__karma__.config.cliArgs`
|
|
|
|
files,
|
|
preprocessors,
|
|
|
|
plugins: [
|
|
require('karma-chrome-launcher'),
|
|
require('karma-jasmine'),
|
|
require('karma-sourcemap-loader'),
|
|
require('karma-verbose-reporter'),
|
|
],
|
|
|
|
// frameworks to use
|
|
frameworks: ['jasmine'],
|
|
|
|
// test results reporter to use
|
|
// possible values: 'dots', 'progress', 'junit', 'growl', 'coverage', 'verbose'
|
|
reporters: ['dots'],
|
|
|
|
// web server port
|
|
port: 9876,
|
|
|
|
// enable / disable colors in the output (reporters and logs)
|
|
colors: true,
|
|
|
|
// level of logging
|
|
// possible values: LOG_DISABLE || LOG_ERROR || LOG_WARN || LOG_INFO || LOG_DEBUG
|
|
logLevel: karma.constants.LOG_INFO,
|
|
|
|
// If browser does not capture in given timeout [ms], kill it
|
|
captureTimeout: 60000,
|
|
|
|
customLaunchers: {
|
|
ChromeHeadless_custom: {
|
|
base: 'ChromeHeadless',
|
|
flags: [
|
|
'--no-sandbox', // needed for TravisCI: https://docs.travis-ci.com/user/chrome#Sandboxing
|
|
'--window-size=1280,1696', // some tests only work with larger window (w?, h?)
|
|
],
|
|
},
|
|
},
|
|
}
|
|
}
|