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