56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { Capabilities } from 'selenium-webdriver';
|
|
import * as chrome from 'selenium-webdriver/chrome.js';
|
|
import { APP_URL, LAUNCH_MODE } from './config';
|
|
import * as fs from 'fs';
|
|
|
|
interface BrowserConfig {
|
|
appUrl: string;
|
|
seleniumAddress: string;
|
|
browserCapabilities: Capabilities;
|
|
browserOptions: chrome.Options;
|
|
browserName: string;
|
|
downloadDir?: string;
|
|
}
|
|
|
|
const chromeArguments = [
|
|
'--window-size=1024,768',
|
|
'--use-fake-ui-for-media-stream',
|
|
'--use-fake-device-for-media-stream'
|
|
];
|
|
const chromeArgumentsCI = [
|
|
'--window-size=1300,1000',
|
|
'--headless',
|
|
'--no-sandbox',
|
|
'--disable-gpu',
|
|
'--disable-popup-blocking',
|
|
'--no-first-run',
|
|
'--no-default-browser-check',
|
|
'--disable-dev-shm-usage',
|
|
'--disable-background-networking',
|
|
'--disable-default-apps',
|
|
'--use-fake-ui-for-media-stream',
|
|
'--use-fake-device-for-media-stream'
|
|
];
|
|
const downloadPath = '/tmp/downloads';
|
|
|
|
const chromeOptions: chrome.Options = new chrome.Options();
|
|
chromeOptions.addArguments(...(LAUNCH_MODE === 'CI' ? chromeArgumentsCI : chromeArguments));
|
|
|
|
if (LAUNCH_MODE === 'CI') {
|
|
chromeOptions.setUserPreferences({
|
|
'download.default_directory': '/tmp/downloads',
|
|
'download.prompt_for_download': false,
|
|
'download.directory_upgrade': true,
|
|
'safebrowsing.enabled': true
|
|
});
|
|
}
|
|
|
|
export const OpenViduCallConfig: BrowserConfig = {
|
|
appUrl: APP_URL,
|
|
seleniumAddress: LAUNCH_MODE === 'CI' ? 'http://localhost:4444/wd/hub' : '',
|
|
browserName: 'ChromeTest',
|
|
browserCapabilities: Capabilities.chrome().set('acceptInsecureCerts', true),
|
|
browserOptions: chromeOptions,
|
|
downloadDir: downloadPath
|
|
};
|