From d0ba7fcff040fdbfe0cce763e4d21940eae6d59f Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Fri, 23 Aug 2024 15:04:53 +0530 Subject: [PATCH 1/5] handle race condition --- commands/generate_reports.js | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/commands/generate_reports.js b/commands/generate_reports.js index 4fd404e..ae7886b 100644 --- a/commands/generate_reports.js +++ b/commands/generate_reports.js @@ -47,13 +47,10 @@ function download_artefact( .then((response) => { response_code = response.status; resp = response; - response.data.pipe( - fs.createWriteStream(file_path, { - overwrite: true, - }) - ); + const writer = fs.createWriteStream(file_path, {overwrite: true,}); + response.data.pipe(writer); - response.data.on('end', function () { + writer.on('finish', function () { if (response_code == 200) { const zip = new StreamZip({ file: file_path }); zip.on("ready", () => { @@ -70,6 +67,12 @@ function download_artefact( } }); + writer.on('error', (err) => { + console.error('Error writing to file:', err); + fs.unlinkSync(file_path); // Cleanup on error + reject('Error writing to file for test id ' + test_id); + }); + }) .catch((error) => { @@ -77,6 +80,7 @@ function download_artefact( resp = error.response // The request was made and the server responded with a status code // that falls out of the range of 2xx + console.log("Got error:",error.response); if (error.response.status == 401) { resolve("Unauthorized"); } else { @@ -93,8 +97,10 @@ function download_artefact( reject("Could not download artefacts for test id " + test_id); } } else if (error.request) { + console.log("Got error: error in request",error.toJSON()); console.log(error.cause); } else { + console.log("Got error:",error.toJSON()); reject(error); } @@ -144,11 +150,13 @@ function generate_report(args) { } args.session_id = lambda_run_obj.session_id; } catch (e) { + console.log("Got error4 ",error.response); reject( "Error!! lambdatest_run.json file is tampered Err: " + e.message ); } } else { + console.log("Got error5",error.response); reject( "Error!! Last session details not found, lambdatest_run.json file not present!!" ); @@ -217,6 +225,7 @@ function generate_report(args) { const downloadPromises = []; for (i = 0; i < build_info["data"].length; i++) { + console.log("Downloading artefacts for ", build_info["data"][i]["test_id"]); const downloadPromise = download_artefact( username, access_key, @@ -247,7 +256,7 @@ function generate_report(args) { }) .catch((error) => { // This catch block will not be executed - console.log(error); + console.log("Error7",error); resolve("Done"); }); From d7193f9f9fe59ef06dee43db124d25cfa98be414 Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Fri, 23 Aug 2024 15:16:32 +0530 Subject: [PATCH 2/5] remove unecessary logs --- commands/generate_reports.js | 3 --- 1 file changed, 3 deletions(-) diff --git a/commands/generate_reports.js b/commands/generate_reports.js index ae7886b..e7ce689 100644 --- a/commands/generate_reports.js +++ b/commands/generate_reports.js @@ -150,13 +150,11 @@ function generate_report(args) { } args.session_id = lambda_run_obj.session_id; } catch (e) { - console.log("Got error4 ",error.response); reject( "Error!! lambdatest_run.json file is tampered Err: " + e.message ); } } else { - console.log("Got error5",error.response); reject( "Error!! Last session details not found, lambdatest_run.json file not present!!" ); @@ -256,7 +254,6 @@ function generate_report(args) { }) .catch((error) => { // This catch block will not be executed - console.log("Error7",error); resolve("Done"); }); From bcfdcc7a35c4206dd5bbb2e190f394c74f048556 Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Fri, 23 Aug 2024 15:17:20 +0530 Subject: [PATCH 3/5] add log --- commands/generate_reports.js | 1 + 1 file changed, 1 insertion(+) diff --git a/commands/generate_reports.js b/commands/generate_reports.js index e7ce689..848af50 100644 --- a/commands/generate_reports.js +++ b/commands/generate_reports.js @@ -254,6 +254,7 @@ function generate_report(args) { }) .catch((error) => { // This catch block will not be executed + console.log(error); resolve("Done"); }); From 7c5f0dee805db8931e383665200e3a8a57f2ada8 Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Fri, 23 Aug 2024 17:45:41 +0530 Subject: [PATCH 4/5] remove extra logs --- commands/generate_reports.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/commands/generate_reports.js b/commands/generate_reports.js index 848af50..9dee835 100644 --- a/commands/generate_reports.js +++ b/commands/generate_reports.js @@ -97,7 +97,6 @@ function download_artefact( reject("Could not download artefacts for test id " + test_id); } } else if (error.request) { - console.log("Got error: error in request",error.toJSON()); console.log(error.cause); } else { console.log("Got error:",error.toJSON()); @@ -223,7 +222,6 @@ function generate_report(args) { const downloadPromises = []; for (i = 0; i < build_info["data"].length; i++) { - console.log("Downloading artefacts for ", build_info["data"][i]["test_id"]); const downloadPromise = download_artefact( username, access_key, From 417f7177d8029484c421f114e436d498d1fb683c Mon Sep 17 00:00:00 2001 From: Abhishek Gadekar Date: Fri, 23 Aug 2024 17:49:13 +0530 Subject: [PATCH 5/5] version bump --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 54b6a30..178ee36 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "lambdatest-cypress-cli", - "version": "3.0.30", + "version": "3.0.31", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "lambdatest-cypress-cli", - "version": "3.0.30", + "version": "3.0.31", "license": "MIT", "dependencies": { "@lambdatest/node-tunnel": "latest", diff --git a/package.json b/package.json index 307bfaf..f471189 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "lambdatest-cypress-cli", - "version": "3.0.30", + "version": "3.0.31", "description": "The lambdatest-cypress-cli is LambdaTest's command-line interface (CLI) aimed to help you run your Cypress tests on LambdaTest platform.", "homepage": "https://github.com/LambdaTest/lambdatest-cypress-cli", "author": "LambdaTest ",