forked from tsayen/dom-to-image
-
Notifications
You must be signed in to change notification settings - Fork 0
/
karma.config.js
113 lines (110 loc) · 2.77 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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
const argv = require('yargs').argv;
const path = require('path');
const withCoverage = !argv.watch;
const TEST_BUNDLER = './spec/test-bundler.js';
const karmaConfig = {
basePath: './',
customLaunchers: {
ChromeHeadless: {
base: 'Chrome',
flags: [
'--headless',
'--disable-gpu',
// Without a remote debugging port, Google Chrome exits immediately.
'--remote-debugging-port=9222',
'--no-sandbox',
'--disable-setuid-sandbox',
'--disable-translate',
'--disable-extensions',
],
debug: true,
},
},
browserNoActivityTimeout: 120000,
singleRun: !argv.watch,
coverageReporter: {
dir: '.',
reporters: [{ type: 'text-summary' }, { type: 'lcov', subdir: 'coverage' }],
},
files: [
{
pattern: TEST_BUNDLER,
watched: false,
served: true,
included: true,
},
{
pattern: './spec/resources/**/*',
watched: false,
included: false,
served: true,
},
{
pattern: './node_modules/@fortawesome/fontawesome-free/css/*.css',
watched: false,
included: false,
served: true,
},
],
preprocessors: {
[TEST_BUNDLER]: ['webpack', 'sourcemap'],
},
webpack: {
mode: 'development',
devtool: 'inline-source-map',
module: {
rules: [
{
test: /\.js$/,
exclude: path.resolve(__dirname, 'node_modules'),
use: [
{
loader: 'babel-loader',
options: {
presets: ['@babel/preset-env'],
plugins: [
[
'istanbul',
{
exclude: ['**/*.spec.js', '**/test-bundler.js'],
},
],
],
},
},
],
},
],
},
},
webpackServer: {
noInfo: true,
},
frameworks: ['mocha'],
reporters: withCoverage ? ['mocha', 'coverage'] : ['mocha'],
mochaReporter: {
showDiff: true,
},
specReporter: {
maxLogLines: 5, // limit number of lines logged per test
suppressErrorSummary: false, // do not print error summary
suppressFailed: false, // do not print information about failed tests
suppressPassed: false, // do not print information about passed tests
suppressSkipped: false, // do not print information about skipped tests
showSpecTiming: false, // print the time elapsed for each spec
failFast: true, // test would finish with error when a first fail occurs.
},
logLevel: 'WARN',
browserConsoleLogOptions: {
terminal: true,
format: '%b %T: %m',
level: 'log',
},
plugins: ['karma-*'],
client: {
mocha: {
timeout: '10000',
},
},
};
module.exports = (cfg) => cfg.set(karmaConfig);