forked from chemfiles/chemfiles.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
karma.conf.ts
73 lines (63 loc) · 2.03 KB
/
karma.conf.ts
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
import { strict as assert } from 'assert';
import path from 'path';
import webpack from 'webpack';
import * as webpackConfig from './webpack.config';
const webpackWebConfig = (webpackConfig as any)[1];
assert(webpackWebConfig.target === 'web');
webpackWebConfig.output.filename = undefined;
webpackWebConfig.resolve.alias = {
chemfiles: path.resolve(__dirname, 'dist/chemfiles.min.js'),
};
// allow tests to access path
webpackWebConfig.resolve.fallback.path = require.resolve('path-browserify');
module.exports = (config: any) => {
config.set({
autoWatch: false,
browserNoActivityTimeout: 10000,
concurrency: 1,
client: {
mocha: {
timeout: 8000,
},
},
exclude: ['tests/doc.ts'],
files: [{ pattern: 'tests/data/*', included: false, served: true }, 'tests/*.ts'],
frameworks: ['webpack', 'mocha', 'detectBrowsers'],
preprocessors: {
'tests/*.ts': ['webpack'],
},
reporters: ['progress'],
singleRun: true,
proxies: {
'/base/tests/libchemfiles.wasm': '/base/lib/libchemfiles.wasm',
},
webpack: {
...webpackWebConfig,
entry: undefined,
},
webpackMiddleware: {
stats: 'errors-only',
},
detectBrowsers: {
preferHeadless: true,
usePhantomJS: false,
postDetection: (list: string[]) => {
const chrome = list.indexOf('ChromeHeadless');
if (chrome !== -1) {
list[chrome] = 'ChromeHeadlessNoSandbox';
}
// const safari = list.indexOf('Safari');
// if (safari !== -1) {
// list[safari] = 'SafariNative';
// }
return list;
},
},
customLaunchers: {
ChromeHeadlessNoSandbox: {
base: 'ChromeHeadless',
flags: ['--no-sandbox'],
},
},
});
};