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

123 lines
3.7 KiB

const os = require('os');
const http = require('http');
8 months ago
const useIsoGit = process.argv.includes('--useIsoGit');
// Function to check if localhost:8080 is active
function checkLocalhost8080Active(callback) {
const options = {
hostname: 'localhost',
port: 8080,
path: '/',
method: 'GET',
};
const req = http.request(options, (res) => {
console.log(`Status Code: ${res.statusCode}`);
if (res.statusCode === 200) {
callback(true); // Server is active
} else {
callback(false); // Server is running but returned a non-success status code
}
});
req.on('error', (error) => {
//console.error(error);
callback(false); // Server is not active
});
req.end();
}
// Determine if running on CircleCI or locally with --e2e-local
const isLocalE2E = process.argv.includes('--e2e-local') && !process.env.CIRCLECI;
if (isLocalE2E) {
checkLocalhost8080Active((isActive) => {
if (!isActive) {
console.error('localhost:8080 is not active. Please start the server before running tests.');
process.exit(1); // Exit if localhost:8080 is not active
} else {
console.log('localhost:8080 is active. Proceeding with tests.');
// The script can continue to the Nightwatch configuration below if needed
}
});
}
11 months ago
module.exports = {
src_folders: ['build-e2e/remixdesktop/test/tests/app'],
output_folder: './reports/tests',
9 months ago
custom_commands_path: ['build-e2e/remix-ide-e2e/src/commands'],
11 months ago
page_objects_path: '',
globals_path: '',
test_settings: {
default: {
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
}
},
11 months ago
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"];
8 months ago
if(useIsoGit) args = [...args, '--useIsoGit'];
if(!process.env.CIRCLECI){
checkLocalhost8080Active((isActive)=>{
if(!isActive){
console.error('localhost:8080 is not active. Please start the server before running tests.');
process.exit(1); // Exit if localhost:8080 is not active
} else {
console.log('localhost:8080 is active. Proceeding with tests.');
// The script can continue to the Nightwatch configuration below if needed
}
});
}
switch (type) {
case 'Windows_NT':
binaryPath = "./release/win-unpacked/Remix-Desktop.exe";
break;
case 'Darwin':
binaryPath = arch === 'x64' ?
"release/mac/Remix-Desktop.app/Contents/MacOS/Remix-Desktop" :
"release/mac-arm64/Remix-Desktop.app/Contents/MacOS/Remix-Desktop";
break;
case 'Linux':
binaryPath = "release/linux-unpacked/remixdesktop";
break;
}
return {
binary: binaryPath,
args: args
};
})()
8 months ago
}
}
11 months ago
}
};