blob: 8378be4229afffc7dc2579c751eea2bae72f4391 [file] [log] [blame]
Nathaniel Nifong15239632019-03-05 13:04:14 -05001const isDocker = require('is-docker')();
2
3module.exports = function(config) {
4 // Set the default values to be what are needed when testing the
5 // WebAssembly build locally.
6 let cfg = {
7 // frameworks to use
8 // available frameworks: https://npmjs.org/browse/keyword/karma-adapter
9 frameworks: ['jasmine'],
10
11 // list of files / patterns to load in the browser
12 files: [
13 { pattern: 'debugger/bin/debugger.wasm', included:false, served:true},
Nathaniel Nifonge0aa7602019-03-06 12:56:54 -050014 { pattern: 'debugger/sample.skp', included:false, served:true},
Nathaniel Nifong15239632019-03-05 13:04:14 -050015 '../../modules/pathkit/tests/testReporter.js',
16 'debugger/bin/debugger.js',
17 'tests/*.spec.js'
18 ],
19
20 proxies: {
Nathaniel Nifonge0aa7602019-03-06 12:56:54 -050021 '/debugger/': '/base/debugger/',
Nathaniel Nifong15239632019-03-05 13:04:14 -050022 },
23
24 // test results reporter to use
25 // possible values: 'dots', 'progress'
26 // available reporters: https://npmjs.org/browse/keyword/karma-reporter
27 reporters: ['progress'],
28
29 // web server port
30 port: 4444,
31
32 // enable / disable colors in the output (reporters and logs)
33 colors: true,
34
35 // level of logging
36 // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
37 logLevel: config.LOG_INFO,
38
39 // enable / disable watching file and executing tests whenever any file changes
40 autoWatch: true,
41
42 browserDisconnectTimeout: 15000,
43 browserNoActivityTimeout: 15000,
44
45 // start these browsers
46 browsers: ['Chrome'],
47
48 // Continuous Integration mode
49 // if true, Karma captures browsers, runs the tests and exits
50 singleRun: false,
51
52 // Concurrency level
53 // how many browser should be started simultaneous
54 concurrency: Infinity,
55 };
56
57 if (isDocker) {
58 // See https://hackernoon.com/running-karma-tests-with-headless-chrome-inside-docker-ae4aceb06ed3
59 cfg.browsers = ['ChromeHeadlessNoSandbox'],
60 cfg.customLaunchers = {
61 ChromeHeadlessNoSandbox: {
62 base: 'ChromeHeadless',
63 flags: [
64 // Without this flag, we see an error:
65 // Failed to move to new namespace: PID namespaces supported, Network namespace supported, but failed: errno = Operation not permitted
66 '--no-sandbox'
67 ],
68 },
69 };
70 }
71
72 config.set(cfg);
73}