forked from dexie/Dexie.js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkarma.common.js
68 lines (56 loc) · 2.2 KB
/
karma.common.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
/* Base karma configurations to require and extend from other karma.conf.js
*/
const karmaCommon = {
frameworks: [
'qunit'
],
reporters: [
'mocha'
],
client: {
captureConsole: false
},
colors: true,
browserNoActivityTimeout: 2 * 60 * 1000,
browserDisconnectTimeout: 10000,
processKillTimeout: 10000,
browserSocketTimeout: 20000,
plugins: [
'karma-qunit',
'karma-mocha-reporter',
'karma-chrome-launcher',
'karma-firefox-launcher',
'karma-browserstack-launcher',
],
files: [
'test/babel-polyfill/polyfill.min.js',
'node_modules/qunitjs/qunit/qunit.js',
'test/karma-env.js',
{ pattern: 'test/worker.js', watched: true, included: false, served: true },
{ pattern: '!(node_modules|tmp)*/*.map', watched: false, included: false, served: true}
],
browserStack: require('./karma.browserstack.js').browserStack,
customLaunchers: require('./karma.browserstack.js').customLaunchers
};
const browserSuiteToUse = process.env.NODE_ENV === 'release' ?
"pre_npm_publish" :
process.env.TRAVIS ?
isNaN(process.env.TRAVIS_PULL_REQUEST) && process.env.BROWSER_STACK_USERNAME ?
"ci" : // CI pushs to master and browserstack credentials exists
"ciLocal" : // CI pull request or has no browserstack credentials.
"local"; // Developer local machine
const defaultBrowserMatrix = require('./karma.browsers.matrix');
/**
* @param browserMatrixOverrides {{full: string[], ci: string[]}}
* Map between browser suite and array of browser to test.
* @param configOverrides {Object} configOverrides to the common template
*/
function getKarmaConfig (browserMatrixOverrides, configOverrides) {
console.log("Browser-suite: " + browserSuiteToUse);
browserMatrixOverrides = Object.assign({}, defaultBrowserMatrix, browserMatrixOverrides);
const browsers = browserMatrixOverrides[browserSuiteToUse];
console.log("Browsers to test: " + browsers.join(', '));
const finalConfig = Object.assign({}, karmaCommon, configOverrides, {browsers});
return finalConfig;
}
module.exports = {karmaCommon, getKarmaConfig, browserSuiteToUse, defaultBrowserMatrix};