|
1 |
| -/* eslint-disable no-process-env */ |
2 | 1 | const packageJson = require('./package.json');
|
3 |
| -const defaultTimeout = 120000; |
| 2 | +let browsers = [ 'ChromeHeadless' ]; |
| 3 | +let build = 'localbuild'; |
| 4 | +let branch = 'local'; |
| 5 | +let job = Date.now(); |
| 6 | +let startConnect = false; |
| 7 | +const reporters = [ 'progress', 'coverage' ]; |
| 8 | +const tags = [ |
| 9 | + `${ packageJson.name }@${ packageJson.version }`, |
| 10 | +]; |
| 11 | +const frameworks = [ 'mocha' ]; |
| 12 | + |
| 13 | +/* eslint-disable no-process-env */ |
| 14 | +const debug = Boolean(process.env.npm_config_debug); |
| 15 | +if (process.env.SAUCE_ACCESS_KEY && process.env.SAUCE_USERNAME) { |
| 16 | + browsers = [ 'SauceEdgeLatest', 'SauceInternetExplorerTen', 'SauceSafariLatest' ]; |
| 17 | + tags.push(`${ process.env.SAUCE_USERNAME }@${ branch }`); |
| 18 | + reporters.push('saucelabs'); |
| 19 | +} else if (process.env.APPVEYOR) { |
| 20 | + browsers = [ 'Firefox', 'ChromeHeadless', 'IE' ]; |
| 21 | + branch = process.env.APPVEYOR_REPO_BRANCH; |
| 22 | + job = process.env.APPVEYOR_JOB_NUMBER; |
| 23 | + build = `appveyor@${ process.env.APPVEYOR_JOB_NUMBER }`; |
| 24 | +} else if (process.env.TRAVIS) { |
| 25 | + browsers = [ 'FirefoxHeadless', 'ChromeHeadless' ]; |
| 26 | + branch = process.env.TRAVIS_BRANCH; |
| 27 | + job = process.env.TRAVIS_JOB_NUMBER; |
| 28 | + build = `travis@${ process.env.TRAVIS_JOB_NUMBER }`; |
| 29 | + startConnect = true; |
| 30 | +} else { |
| 31 | + browsers = []; |
| 32 | + frameworks.push('detectBrowsers'); |
| 33 | +} |
| 34 | +/* eslint-enable */ |
| 35 | + |
| 36 | +tags.push(build); |
4 | 37 | module.exports = function configureKarma(config) {
|
5 |
| - const localBrowsers = [ |
6 |
| - 'PhantomJS', |
7 |
| - ]; |
8 |
| - const sauceLabsBrowsers = { |
9 |
| - SauceChromeLatest: { |
10 |
| - base: 'SauceLabs', |
11 |
| - browserName: 'Chrome', |
12 |
| - }, |
13 |
| - SauceFirefoxLatest: { |
14 |
| - base: 'SauceLabs', |
15 |
| - browserName: 'Firefox', |
16 |
| - }, |
17 |
| - SauceSafariLatest: { |
18 |
| - base: 'SauceLabs', |
19 |
| - browserName: 'Safari', |
20 |
| - platform: 'OS X 10.11', |
21 |
| - }, |
22 |
| - SauceInternetExplorerLatest: { |
23 |
| - base: 'SauceLabs', |
24 |
| - browserName: 'Internet Explorer', |
25 |
| - }, |
26 |
| - SauceInternetExplorerOldestSupported: { |
27 |
| - base: 'SauceLabs', |
28 |
| - browserName: 'Internet Explorer', |
29 |
| - version: 9, |
30 |
| - }, |
31 |
| - SauceEdgeLatest: { |
32 |
| - base: 'SauceLabs', |
33 |
| - browserName: 'MicrosoftEdge', |
34 |
| - }, |
35 |
| - SauceAndroidLatest: { |
36 |
| - base: 'SauceLabs', |
37 |
| - browserName: 'Android', |
38 |
| - }, |
39 |
| - }; |
40 | 38 | config.set({
|
41 | 39 | basePath: '',
|
42 |
| - browsers: localBrowsers, |
43 |
| - logLevel: process.env.npm_config_debug ? config.LOG_DEBUG : config.LOG_INFO, |
44 |
| - frameworks: [ 'mocha' ], |
45 |
| - files: [ 'type-detect.test.js' ], |
46 |
| - exclude: [], |
47 |
| - reporters: [ 'progress', 'coverage' ], |
| 40 | + browsers, |
| 41 | + singleRun: true, |
| 42 | + logLevel: debug ? config.LOG_DEBUG : config.LOG_INFO, |
| 43 | + frameworks, |
| 44 | + files: [ `${ packageJson.name }.test.js` ], |
| 45 | + reporters, |
48 | 46 | coverageReporter: {
|
49 | 47 | type: 'lcov',
|
50 | 48 | dir: 'coverage',
|
51 | 49 | },
|
52 |
| - port: 9876, |
53 |
| - colors: true, |
54 |
| - concurrency: 3, |
55 |
| - autoWatch: false, |
56 |
| - captureTimeout: defaultTimeout, |
57 |
| - browserDisconnectTimeout: defaultTimeout, |
58 |
| - browserNoActivityTimeout: defaultTimeout, |
59 |
| - singleRun: true, |
60 |
| - }); |
61 |
| - |
62 |
| - if (process.env.SAUCE_ACCESS_KEY && process.env.SAUCE_USERNAME) { |
63 |
| - const branch = process.env.TRAVIS_BRANCH || 'local'; |
64 |
| - let build = 'localbuild'; |
65 |
| - if (process.env.TRAVIS_JOB_NUMBER) { |
66 |
| - build = `travis@${ process.env.TRAVIS_JOB_NUMBER }`; |
67 |
| - } |
68 |
| - config.reporters.push('saucelabs'); |
69 |
| - config.set({ |
70 |
| - customLaunchers: sauceLabsBrowsers, |
71 |
| - browsers: localBrowsers.concat(Object.keys(sauceLabsBrowsers)), |
72 |
| - sauceLabs: { |
73 |
| - testName: packageJson.name, |
74 |
| - tunnelIdentifier: process.env.TRAVIS_JOB_NUMBER || new Date().getTime(), |
75 |
| - recordVideo: true, |
76 |
| - startConnect: ('TRAVIS' in process.env) === false, |
77 |
| - tags: [ |
78 |
| - `typeDetect_${ packageJson.version }`, |
79 |
| - `${ process.env.SAUCE_USERNAME }@${ branch }`, |
80 |
| - build, |
81 |
| - ], |
| 50 | + customLaunchers: { |
| 51 | + FirefoxHeadless: { |
| 52 | + base: 'Firefox', |
| 53 | + flags: [ '-headless' ], |
| 54 | + }, |
| 55 | + SauceSafariLatest: { |
| 56 | + base: 'SauceLabs', |
| 57 | + browserName: 'Safari', |
| 58 | + platform: 'OS X 10.11', |
| 59 | + }, |
| 60 | + SauceInternetExplorerTen: { |
| 61 | + base: 'SauceLabs', |
| 62 | + browserName: 'Internet Explorer', |
| 63 | + version: 10, |
82 | 64 | },
|
83 |
| - }); |
84 |
| - } |
| 65 | + SauceEdgeLatest: { |
| 66 | + base: 'SauceLabs', |
| 67 | + browserName: 'MicrosoftEdge', |
| 68 | + }, |
| 69 | + }, |
| 70 | + detectBrowsers: { |
| 71 | + enabled: true, |
| 72 | + usePhantomJS: false, |
| 73 | + }, |
| 74 | + sauceLabs: { |
| 75 | + testName: packageJson.name, |
| 76 | + tunnelIdentifier: job, |
| 77 | + startConnect, |
| 78 | + tags, |
| 79 | + }, |
| 80 | + }); |
85 | 81 | };
|
0 commit comments