|
1 | 1 | 'use strict';
|
2 | 2 |
|
| 3 | +function addSauceTests(cfg) { |
| 4 | + cfg.reporters.push('saucelabs'); |
| 5 | + cfg.customLaunchers = { |
| 6 | + ie8: { |
| 7 | + base: 'SauceLabs', |
| 8 | + browserName: 'internet explorer', |
| 9 | + platform: 'Windows 7', |
| 10 | + version: '8.0' |
| 11 | + }, |
| 12 | + chrome: { |
| 13 | + base: 'SauceLabs', |
| 14 | + browserName: 'chrome', |
| 15 | + platform: 'Windows 8', |
| 16 | + version: 'latest' |
| 17 | + }, |
| 18 | + edge: { |
| 19 | + base: 'SauceLabs', |
| 20 | + browserName: 'MicrosoftEdge', |
| 21 | + platform: 'Windows 10', |
| 22 | + version: 'latest' |
| 23 | + }, |
| 24 | + firefox: { |
| 25 | + base: 'SauceLabs', |
| 26 | + browserName: 'firefox', |
| 27 | + platform: 'Windows 8.1', |
| 28 | + version: 'latest' |
| 29 | + }, |
| 30 | + safari: { |
| 31 | + base: 'SauceLabs', |
| 32 | + browserName: 'safari', |
| 33 | + platform: 'OS X 10.11', |
| 34 | + version: 'latest' |
| 35 | + } |
| 36 | + }; |
| 37 | + |
| 38 | + cfg.browsers = cfg.browsers.concat(Object.keys(cfg.customLaunchers)); |
| 39 | + |
| 40 | + cfg.sauceLabs = { |
| 41 | + public: 'public' |
| 42 | + }; |
| 43 | + |
| 44 | + // for slow browser booting, ostensibly |
| 45 | + cfg.captureTimeout = 120000; |
| 46 | +} |
| 47 | + |
3 | 48 | module.exports = function(config) {
|
4 | 49 | var cfg = {
|
5 | 50 | frameworks: [
|
@@ -41,68 +86,28 @@ module.exports = function(config) {
|
41 | 86 | // TO RUN LOCALLY:
|
42 | 87 | // Execute `CI=1 make test-browser`, once you've set the SAUCE_USERNAME and
|
43 | 88 | // SAUCE_ACCESS_KEY env vars.
|
44 |
| - // also, we can't run SauceLabs tests on PRs from forks. |
45 | 89 | if (process.env.CI) {
|
46 |
| - if (!(process.env.SAUCE_USERNAME || process.env.SAUCE_ACCESS_KEY)) { |
47 |
| - throw new Error('Must set SAUCE_USERNAME and SAUCE_ACCESS_KEY ' |
48 |
| - + 'environment variables!'); |
49 |
| - } |
50 |
| - cfg.reporters.push('saucelabs'); |
51 |
| - cfg.customLaunchers = { |
52 |
| - ie8: { |
53 |
| - base: 'SauceLabs', |
54 |
| - browserName: 'internet explorer', |
55 |
| - platform: 'Windows 7', |
56 |
| - version: '8.0' |
57 |
| - }, |
58 |
| - chrome: { |
59 |
| - base: 'SauceLabs', |
60 |
| - browserName: 'chrome', |
61 |
| - platform: 'Windows 8', |
62 |
| - version: 'latest' |
63 |
| - }, |
64 |
| - edge: { |
65 |
| - base: 'SauceLabs', |
66 |
| - browserName: 'MicrosoftEdge', |
67 |
| - platform: 'Windows 10', |
68 |
| - version: 'latest' |
69 |
| - }, |
70 |
| - firefox: { |
71 |
| - base: 'SauceLabs', |
72 |
| - browserName: 'firefox', |
73 |
| - platform: 'Windows 8.1', |
74 |
| - version: 'latest' |
75 |
| - }, |
76 |
| - safari: { |
77 |
| - base: 'SauceLabs', |
78 |
| - browserName: 'safari', |
79 |
| - platform: 'OS X 10.11', |
80 |
| - version: 'latest' |
81 |
| - } |
82 |
| - }; |
83 |
| - |
84 |
| - cfg.browsers = cfg.browsers.concat(Object.keys(cfg.customLaunchers)); |
85 |
| - |
86 |
| - cfg.sauceLabs = { |
87 |
| - public: 'public' |
88 |
| - }; |
89 |
| - |
| 90 | + // we can't run SauceLabs tests on PRs from forks on Travis cuz security. |
90 | 91 | if (process.env.TRAVIS) {
|
91 | 92 | if (process.env.TRAVIS_REPO_SLUG === 'mochajs/mocha'
|
92 | 93 | && process.env.TRAVIS_PULL_REQUEST === 'false') {
|
| 94 | + addSauceTests(cfg); |
93 | 95 | // correlate build/tunnel with Travis
|
94 | 96 | cfg.sauceLabs.build = 'TRAVIS #' + process.env.TRAVIS_BUILD_NUMBER
|
95 | 97 | + ' (' + process.env.TRAVIS_BUILD_ID + ')';
|
96 | 98 | cfg.sauceLabs.tunnelIdentifier = process.env.TRAVIS_JOB_NUMBER;
|
97 |
| - cfg.sauceLabs.startConnect = false; |
| 99 | + cfg.sauceLabs.startConnect = true; |
98 | 100 | }
|
99 | 101 | } else {
|
100 |
| - // otherwise just make something up |
| 102 | + if (!(process.env.SAUCE_USERNAME || process.env.SAUCE_ACCESS_KEY)) { |
| 103 | + throw new Error('Must set SAUCE_USERNAME and SAUCE_ACCESS_KEY ' |
| 104 | + + 'environment variables!'); |
| 105 | + } |
| 106 | + |
| 107 | + // remember, this is for a local run. |
| 108 | + addSauceTests(cfg); |
101 | 109 | cfg.sauceLabs.build = require('os').hostname() + ' (' + Date.now() + ')';
|
102 | 110 | }
|
103 |
| - |
104 |
| - // for slow browser booting, ostensibly |
105 |
| - cfg.captureTimeout = 120000; |
106 | 111 | }
|
107 | 112 |
|
108 | 113 | // the MOCHA_UI env var will determine if we're running interface-specific
|
|
0 commit comments