remix-project mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
remix-project/apps/remixdesktop/test/nighwatch.app.ts

103 lines
3.0 KiB

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=1920,1080";
args = [...args, windowSize];
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
};
})()
}
}
}
};