Improve e2e tests
[oweals/peertube.git] / client / e2e / protractor.conf.js
1 // Protractor configuration file, see link for more information
2 // https://github.com/angular/protractor/blob/master/lib/config.ts
3
4 const {SpecReporter} = require('jasmine-spec-reporter')
5
6 exports.config = {
7   allScriptsTimeout: 25000,
8   specs: [
9     './src/**/*.e2e-spec.ts'
10   ],
11
12   seleniumAddress: 'http://hub-cloud.browserstack.com/wd/hub',
13   commonCapabilities: {
14     'browserstack.user': process.env.BROWSERSTACK_USER,
15     'browserstack.key': process.env.BROWSERSTACK_KEY,
16     'browserstack.local': true,
17     'project': 'PeerTube'
18   },
19
20   multiCapabilities: [
21     {
22       browserName: 'Chrome',
23       version: '66'
24     },
25     {
26       browserName: 'Safari',
27       version: '11.1'
28     },
29     {
30       browserName: 'Firefox',
31       version: '52' // ESR
32     },
33     {
34       browserName: 'Firefox',
35       version: '60'
36     },
37     {
38       browserName: 'Edge',
39       version: '16'
40     },
41     {
42       browserName: 'Chrome',
43       device: 'Google Nexus 6',
44       realMobile: 'true',
45       os_version: '5.0'
46     },
47     // {
48     //   browserName: 'Safari',
49     //   device: 'iPhone 6s',
50     //   realMobile: 'true',
51     //   os_version: '9.0'
52     // },
53     // {
54     //   browserName: 'Safari',
55     //   device: 'iPhone SE',
56     //   realMobile: 'true',
57     //   os_version: '11.2'
58     // }
59   ],
60
61   maxSessions: 1,
62   // BrowserStack compatible ports: https://www.browserstack.com/question/664
63   baseUrl: 'http://localhost:3333/',
64   framework: 'jasmine',
65   jasmineNodeOpts: {
66     showColors: true,
67     defaultTimeoutInterval: 45000,
68     print: function () {}
69   },
70
71   onPrepare () {
72     require('ts-node').register({
73       project: require('path').join(__dirname, './tsconfig.e2e.json')
74     })
75     jasmine.getEnv().addReporter(new SpecReporter({spec: {displayStacktrace: true}}))
76   }
77 }
78
79 exports.config.multiCapabilities.forEach(function (caps) {
80   for (var i in exports.config.commonCapabilities) caps[i] = caps[i] || exports.config.commonCapabilities[i]
81 })