123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- import { onBrowserStackComplete, onBrowserStackPrepare } from './src/utils'
- import { config as mainConfig } from './wdio.main.conf'
- const user = process.env.BROWSERSTACK_USER
- const key = process.env.BROWSERSTACK_KEY
- if (!user) throw new Error('Miss browser stack user')
- if (!key) throw new Error('Miss browser stack key')
- function buildMainOptions (sessionName: string) {
- return {
- projectName: 'PeerTube',
- buildName: 'Main E2E - ' + new Date().toISOString().split('T')[0],
- sessionName,
- consoleLogs: 'info',
- networkLogs: true
- }
- }
- function buildBStackDesktopOptions (options: {
- sessionName: string
- resolution: string
- os?: string
- osVersion?: string
- }) {
- const { sessionName, resolution, os, osVersion } = options
- return {
- 'bstack:options': {
- ...buildMainOptions(sessionName),
- os,
- osVersion,
- resolution
- }
- }
- }
- function buildBStackMobileOptions (options: {
- sessionName: string
- deviceName: string
- osVersion: string
- }) {
- const { sessionName, deviceName, osVersion } = options
- return {
- 'bstack:options': {
- ...buildMainOptions(sessionName),
- realMobile: true,
- osVersion,
- deviceName
- }
- }
- }
- module.exports = {
- config: {
- ...mainConfig,
- user,
- key,
- maxInstances: 5,
- capabilities: [
- {
- browserName: 'Chrome',
- ...buildBStackDesktopOptions({ sessionName: 'Latest Chrome Desktop', resolution: '1280x1024', os: 'Windows', osVersion: '8' })
- },
- {
- browserName: 'Firefox',
- browserVersion: '78', // Very old ESR
- ...buildBStackDesktopOptions({ sessionName: 'Firefox ESR Desktop', resolution: '1280x1024', os: 'Windows', osVersion: '8' })
- },
- {
- browserName: 'Safari',
- browserVersion: '12.1',
- ...buildBStackDesktopOptions({ sessionName: 'Safari Desktop', resolution: '1280x1024' })
- },
- {
- browserName: 'Firefox',
- ...buildBStackDesktopOptions({ sessionName: 'Firefox Latest', resolution: '1280x1024', os: 'Windows', osVersion: '8' })
- },
- {
- browserName: 'Edge',
- ...buildBStackDesktopOptions({ sessionName: 'Edge Latest', resolution: '1280x1024' })
- },
- {
- browserName: 'Chrome',
- ...buildBStackMobileOptions({ sessionName: 'Latest Chrome Android', deviceName: 'Samsung Galaxy S8', osVersion: '7.0' })
- },
- {
- browserName: 'Safari',
- ...buildBStackMobileOptions({ sessionName: 'Safari iPhone', deviceName: 'iPhone 8 Plus', osVersion: '12.4' })
- },
- {
- browserName: 'Safari',
- ...buildBStackMobileOptions({ sessionName: 'Safari iPad', deviceName: 'iPad 7th', osVersion: '13' })
- }
- ],
- host: 'hub-cloud.browserstack.com',
- connectionRetryTimeout: 240000,
- waitforTimeout: 20000,
- specs: [
- // We don't want to test "local" tests
- './src/suites-all/*.e2e-spec.ts'
- ],
- services: [
- [
- 'browserstack', { browserstackLocal: true }
- ]
- ],
- onWorkerStart: function (_cid, capabilities) {
- if (capabilities['bstack:options'].realMobile === true) {
- capabilities['bstack:options'].local = false
- }
- },
- onPrepare: onBrowserStackPrepare,
- onComplete: onBrowserStackComplete
- } as WebdriverIO.Config
- }
|