UNPKG

lambdatest-cypress-cli

Version:

The lambdatest-cypress-cli is LambdaTest's command-line interface (CLI) aimed to help you run your Cypress tests on LambdaTest platform.

92 lines (87 loc) 3.17 kB
const poller = require("./build_stats.js"); const async = require("async"); const build_stats = require("./build_stats.js"); const reports = require("../../../commands/generate_reports.js"); var build_result = true; function poll_build(lt_config, session_id,hyperexecute, env) { return new Promise(function (resolve, reject) { async.whilst( function test(callback) { callback(null, build_result); }, function iter(callback) { poller.get_build_info( lt_config, session_id, hyperexecute, env, update_status, callback ); }, function (err, result) { if (err == null) { build_stats .get_completed_build_info(lt_config, session_id, env) .then(async function (build_info) { if (!build_info || build_info.data == null) { console.log("Build info not found"); resolve({exit_code:1, build_info:build_info}); return; } let stats = {}; let status = []; for (i = 0; i < build_info["data"].length; i++) { status.push({ Spec: build_info["data"][i]["name"], Status: build_info["data"][i]["status_ind"], Platform: build_info["data"][i]["platform"], Browser: build_info["data"][i]["browser"], Version: build_info["data"][i]["version"], }); if (stats.hasOwnProperty(build_info["data"][i]["status_ind"])) { stats[build_info["data"][i]["status_ind"]] += 1; } else [(stats[build_info["data"][i]["status_ind"]] = 1)]; } console.table(status); console.log(stats); //Download the artefacts if downloads is passed if (lt_config.run_settings.downloads != "" && lt_config["run_settings"]["sync"] == true) { let args = { user: lt_config.lambdatest_auth.username, access_key: lt_config.lambdatest_auth.access_key, session_id: session_id, env: env, reject_unauthorized: lt_config.run_settings.reject_unauthorized, }; await reports.generate_report(args) } if ( Object.keys(stats).length == 1 && (Object.keys(stats).includes("completed") || Object.keys(stats).includes("passed")) ) { resolve({exit_code:0, build_info:build_info}); } else { resolve({exit_code:1, build_info:build_info}); } }) .catch(function (err) { console.log("Error", err); }); } else { console.log(err); resolve({exit_code:1, build_info:null}); } } ); }); } function update_status(status) { build_result = status; } module.exports = { poll_build: poll_build, update_status: update_status, };