-
-
Notifications
You must be signed in to change notification settings - Fork 19
/
karma.conf.js
69 lines (66 loc) · 1.66 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
const path = require('path');
const commonjs = require('@rollup/plugin-commonjs');
const { default: nodeResolve } = require('@rollup/plugin-node-resolve');
// NOTE: fail build when use @wessberg/rollup-plugin-ts
const typescript = require('@rollup/plugin-typescript');
const meta = require('./package.json');
module.exports = function (config) {
config.set({
basePath: path.resolve(__dirname),
browsers: ['ChromeHeadlessNoSandbox'],
client: {
mocha: {
reporter: 'html',
ui: 'bdd'
}
},
customHeaders: [
{
match: '.*debug\\.html$',
name: 'Content-Security-Policy',
value:
"default-src 'none'; img-src 'self'; script-src 'self' 'unsafe-inline'; style-src 'self'"
}
],
customLaunchers: {
// NOTE: https://docs.travis-ci.com/user/chrome#Sandboxing
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
chromeDataDir: path.resolve(__dirname, '.chrome'),
flags: ['--no-sandbox']
}
},
files: [
{
pattern: 'test/**/*.ts',
type: 'js',
watched: true
}
],
frameworks: ['mocha', 'power-assert'],
mime: {
'text/x-typescript': ['ts', 'tsx']
},
preprocessors: {
'+(src|test)/**/*.ts': ['rollup', 'espower']
},
reporters: ['dots'],
rollupPreprocessor: {
output: {
format: 'iife',
name: meta.name,
sourcemap: 'inline'
},
plugins: [
nodeResolve(),
commonjs(),
typescript({
esModuleInterop: true,
module: 'ESNext',
target: 'ES5',
tsconfig: false
})
]
}
});
};