-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathprotractor.conf.js
95 lines (90 loc) · 2.57 KB
/
protractor.conf.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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
const liveServer = require('live-server');
const port = process.env.HTTP_PORT || 9998;
let server;
exports.config = {
specs: ['test/protractor/**/*.spec.js'],
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 60000
}
};
// https://wiki.saucelabs.com/display/DOCS/Platform+Configurator#/
const saucelabsCapabilities = [{
browserName: 'chrome',
version: '67',
platform: 'Windows 10',
name: 'PaperHive (chrome)',
}, {
browserName: 'firefox',
version: '60',
platform: 'Windows 10',
name: 'PaperHive (firefox)'
}, {
browserName: 'MicrosoftEdge',
version: '17',
platform: 'Windows 10',
name: 'PaperHive (edge)',
}, /* {
// Note: Safari 10 requires Selenium 3
// (not yet running on SauceLabs as of 2017-01-09)
browserName: 'safari',
version: '9',
platform: 'OS X 10.11',
name: 'PaperHive (safari)',
},
*/
/*
// currently the PDF rendering is broken on IE11 when scrolling
// and we have no idea why
// TODO: investigate or ditch IE
{
browserName: 'internet explorer',
version: '11',
platform: 'Windows 10',
name: 'PaperHive (ie)',
}
*/
];
saucelabsCapabilities.forEach(capability => {
capability['tunnel-identifier'] = process.env.TRAVIS_JOB_NUMBER;
capability.tags = ['frontend'];
if (process.env.TRAVIS_PULL_REQUEST === 'false' && process.env.TRAVIS_BRANCH === 'master') {
capability.tags.push('master');
}
capability.screenResolution = '1280x960';
});
// travis or jenkins -> use saucelabs
if (process.env.TRAVIS_JOB_NUMBER || process.env.SAUCE_ONDEMAND_BROWSERS) {
exports.config.sauceUser = process.env.SAUCE_USERNAME || process.env.SAUCE_USER_NAME;
exports.config.sauceKey = process.env.SAUCE_ACCESS_KEY || process.env.SAUCE_API_KEY;
exports.config.sauceBuild = process.env.TRAVIS_BUILD_NUMBER;
exports.config.multiCapabilities = saucelabsCapabilities;
exports.config.baseUrl = 'http://localhost:8080';
} else {
// Only test chrome locally
exports.config.multiCapabilities = [{
'browserName': 'chrome'
}];
exports.config.baseUrl = 'http://localhost:' + port;
exports.config.onPrepare = function() {
server = liveServer.start({
root: 'build/',
file: 'index.html',
port: port,
open: false,
watch: ['non-existing']
});
return new Promise(function(resolve, reject) {
server.addListener('listening', resolve);
server.addListener('error', reject);
});
};
exports.config.onComplete = function() {
return new Promise(function(resolve, reject) {
server.close(function (err) {
if (err) return reject(err);
resolve();
});
});
};
}