-
Notifications
You must be signed in to change notification settings - Fork 39
/
karma.conf.js
112 lines (94 loc) · 2.61 KB
/
karma.conf.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
const istanbul = require('browserify-istanbul');
module.exports = function(config) {
const browserify = {
debug: true,
transform: ['hbsfy', ['babelify', { presets: ['es2015'] }]]
};
let reporters = ['progress', 'coverage-istanbul'];
if (process.argv.indexOf('--debug') === -1) {
browserify.transform.push(
istanbul({
ignore: ['**/tests/**/*.js', '**/*.hbs']
})
);
reporters.push('coverage');
}
config.set({
files: [
'node_modules/jquery/dist/jquery.min.js',
'node_modules/babel-polyfill/dist/polyfill.js',
'fec/fec/tests/js/**/*.js'
],
exclude: [
'**/hallo-edit-html.js',
'fec/fec/static/js/init.js',
'**/node_modules/*'
],
frameworks: ['browserify', 'mocha', 'chai-sinon', 'webpack'],
preprocessors: {
'fec/fec/tests/js/*.js': ['webpack', 'babel'],
'fec/fec/tests/js/draftail/**/*.js': ['webpack']
},
babelPreprocessor: {
options: {
presets: ['@babel/preset-env', '@babel/preset-react'],
sourceMap: 'inline'
}
},
browserify: browserify,
coverageReporter: {
subdir: '.',
reporters: [
//uncomenting to generate coverage/index.html, but this will result in Instanbul error: Cannot read property 'text' of undefined
//{ type: 'html'},
{ type: 'text' },
{ type: 'json', file: 'coverage.json' }
]
},
webpack: {
devtool: 'inline-source-map',
module: {
rules: [
{ test: /\.hbs/, use: ['handlebars-loader'] },
{
test: /\.(?:js|mjs|cjs)$/,
exclude: /node_modules/,
loader: 'babel-loader',
options: {
// presets: ['es2015', 'react']
presets: ['@babel/preset-env', '@babel/preset-react'],
plugins: [
['@babel/plugin-syntax-import-attributes', {
deprecatedAssertSyntax: true
}]
]
}
},
// {
// test: /\.js$/,
// exclude: /node_modules/,
// loader: 'istanbul-instrumenter-loader',
// // query: {
// // esModules: true
// // }
// }
]
},
resolve: {
fallback: {
stream: require.resolve('stream-browserify')
}
}
},
reporters: reporters,
coverageIstanbulReporter: {
reports: ['text-summary'],
fixWebpackSourcePaths: true
},
browsers: ['ChromeHeadless'],
port: 9876,
autoWatch: false,
colors: true,
logLevel: config.LOG_INFO
});
};