forked from fullcalendar/fullcalendar
-
Notifications
You must be signed in to change notification settings - Fork 2
/
karma.config.js
84 lines (66 loc) · 2.22 KB
/
karma.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
const { writeFileSync } = require('./scripts/lib/util')
let cmdArgs = process.argv.slice(2)
let isRealCiEnv = Boolean(process.env.CI)
let isCi = isRealCiEnv || cmdArgs.indexOf('ci') !== -1
writeFileSync(
'tmp/tests/config.js',
'window.karmaConfig = ' + JSON.stringify({
isCi: isRealCiEnv
})
)
module.exports = function(config) {
config.set({
singleRun: isCi,
autoWatch: !isCi,
browsers: isCi ? [ 'ChromeHeadless_custom' ] : [],
// base path, that will be used to resolve files and exclude
basePath: '',
plugins: [
require('karma-chrome-launcher'),
require('karma-jasmine'),
require('karma-sourcemap-loader'),
require('karma-verbose-reporter')
],
// frameworks to use
frameworks: [ 'jasmine' ],
// list of files / patterns to load in the browser
files: [
'tmp/tests/config.js',
'tmp/tests/all.js',
{ pattern: 'tmp/tests/all.js.map', included: false }
],
// make console errors aware of source files
preprocessors: {
'tmp/tests/*.js': [ 'sourcemap' ]
},
// 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: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.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?)
]
}
}
})
}
// ...getJsFilesFromHtml('tmp/tests/all.html').map((shortPath) => (
// 'tmp/tests/' + shortPath
// ))
// function getJsFilesFromHtml(htmlPath) {
// let html = readFileSync(htmlPath)
// let matches = [ ...html.matchAll(/src=['"]([^'"]*)['"]/g) ] // iterator->array
// return matches.map((match) => match[1])
// }