|
|
|
import os from 'os';
|
|
|
|
import fs from 'fs';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const useIsoGit = process.argv.includes('--useIsoGit');
|
|
|
|
const useOffline = process.argv.includes('--useOffline');
|
|
|
|
|
|
|
|
// Function to read JSON file synchronously
|
|
|
|
function readJSONFileSync(filename: string): any {
|
|
|
|
try {
|
|
|
|
const data = fs.readFileSync(filename, 'utf8');
|
|
|
|
return JSON.parse(data);
|
|
|
|
} catch (err) {
|
|
|
|
throw err;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
const packageData: any = readJSONFileSync('package.json');
|
|
|
|
const version = packageData.version;
|
|
|
|
|
|
|
|
let channel: string = ''
|
|
|
|
|
|
|
|
if (version.includes('beta')) {
|
|
|
|
channel = 'Beta';
|
|
|
|
} else if (version.includes('alpha')) {
|
|
|
|
channel = 'Alpha';
|
|
|
|
} else if (version.includes('insiders')) {
|
|
|
|
channel = 'Insiders';
|
|
|
|
}
|
|
|
|
|
|
|
|
// Determine if running on CircleCI or locally with --e2e-local
|
|
|
|
const isLocalE2E = process.argv.includes('--e2e-local') && !process.env.CIRCLECI;
|
|
|
|
|
|
|
|
module.exports = {
|
|
|
|
src_folders: ['build-e2e/remixdesktop/test/tests/app'],
|
|
|
|
output_folder: './reports/tests',
|
|
|
|
custom_commands_path: ['build-e2e/remix-ide-e2e/src/commands'],
|
|
|
|
page_objects_path: '',
|
|
|
|
globals_path: '',
|
|
|
|
test_settings: {
|
|
|
|
default: {
|
|
|
|
enable_fail_fast: true,
|
|
|
|
selenium_port: 4444,
|
|
|
|
selenium_host: 'localhost',
|
|
|
|
globals: {
|
|
|
|
waitForConditionTimeout: 10000,
|
|
|
|
asyncHookTimeout: 100000
|
|
|
|
},
|
|
|
|
screenshots: {
|
|
|
|
enabled: true,
|
|
|
|
path: './reports/screenshots',
|
|
|
|
on_failure: true,
|
|
|
|
on_error: true
|
|
|
|
},
|
|
|
|
webdriver: {
|
|
|
|
start_process: true,
|
|
|
|
timeout_options: {
|
|
|
|
timeout: 60000,
|
|
|
|
retry_attempts: 3
|
|
|
|
}
|
|
|
|
},
|
|
|
|
desiredCapabilities: {
|
|
|
|
browserName: 'chrome',
|
|
|
|
javascriptEnabled: true,
|
|
|
|
acceptSslCerts: true,
|
|
|
|
'goog:chromeOptions': (() => {
|
|
|
|
const type = os.type();
|
|
|
|
const arch = os.arch();
|
|
|
|
let binaryPath = "";
|
|
|
|
// Check if running on CircleCI or locally
|
|
|
|
let args = process.env.CIRCLECI ? ["--e2e"] : ["--e2e-local"];
|
|
|
|
|
|
|
|
if(useIsoGit) args = [...args, '--useIsoGit'];
|
|
|
|
if(useOffline) args = [...args, '--useOffline'];
|
|
|
|
|
|
|
|
// Set display size
|
|
|
|
const windowSize = "--window-size=1000,1000";
|
|
|
|
args = [...args];
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
case 'Windows_NT':
|
|
|
|
binaryPath = `./release/win-unpacked/Remix-Desktop-${channel}.exe`;
|
|
|
|
break;
|
|
|
|
case 'Darwin':
|
|
|
|
binaryPath = arch === 'x64' ?
|
|
|
|
`release/mac/Remix-Desktop-${channel}.app/Contents/MacOS/Remix-Desktop-${channel}` :
|
|
|
|
`release/mac-arm64/Remix-Desktop-${channel}.app/Contents/MacOS/Remix-Desktop-${channel}`;
|
|
|
|
break;
|
|
|
|
case 'Linux':
|
|
|
|
binaryPath = "release/linux-unpacked/remixdesktop";
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
|
|
|
|
return {
|
|
|
|
binary: binaryPath,
|
|
|
|
args: args
|
|
|
|
};
|
|
|
|
})()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|