Fix e2e tests in parallel
[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: ['./src/**/*.e2e-spec.ts'],
9
10   seleniumAddress: 'http://hub-cloud.browserstack.com/wd/hub',
11   commonCapabilities: {
12     'browserstack.user': process.env.BROWSERSTACK_USER,
13     'browserstack.key': process.env.BROWSERSTACK_KEY,
14     'browserstack.local': true,
15     project: 'PeerTube'
16   },
17
18   multiCapabilities: [
19     {
20       browserName: 'Chrome',
21       name: 'Latest Chrome Desktop',
22       resolution: '1280x1024'
23     },
24     {
25       browserName: 'Safari',
26       version: '11.1',
27       name: 'Safari Desktop',
28       resolution: '1280x1024'
29     },
30     {
31       browserName: 'Firefox',
32       version: '60', // ESR,
33       name: 'Firefox ESR Desktop',
34       resolution: '1280x1024'
35     },
36     {
37       browserName: 'Firefox',
38       name: 'Latest Firefox Desktop',
39       resolution: '1280x1024'
40     },
41     {
42       browserName: 'Edge',
43       name: 'Latest Edge Desktop',
44       resolution: '1280x1024'
45     },
46     {
47       browserName: 'Chrome',
48       device: 'Google Nexus 6',
49       realMobile: 'true',
50       os_version: '5.0',
51       name: 'Latest Chrome Android'
52     },
53     {
54       browserName: 'Safari',
55       device: 'iPhone SE',
56       realMobile: 'true',
57       os_version: '11.2',
58       name: 'Latest Safari iPhone'
59     }
60   ],
61
62   // maxSessions: 1,
63   // BrowserStack compatible ports: https://www.browserstack.com/question/664
64   baseUrl: 'http://localhost:3333/',
65   framework: 'jasmine',
66   jasmineNodeOpts: {
67     showColors: true,
68     defaultTimeoutInterval: 45000,
69     print: function() {}
70   },
71
72   onPrepare() {
73     require('ts-node').register({
74       project: require('path').join(__dirname, './tsconfig.e2e.json')
75     })
76     jasmine.getEnv().addReporter(new SpecReporter({   spec:  {  displayStacktrace: true    }  }))
77   }
78 }
79
80 exports.config.multiCapabilities.forEach(function (caps) {
81   for (var i in exports.config.commonCapabilities) caps[i] = caps[i] || exports.config.commonCapabilities[i]
82 })