Skip to content

Commit 9470e83

Browse files
authored
Merge pull request #58 from japneetlambdatest/dev
envs handling
2 parents 9a893be + c5aab45 commit 9470e83

File tree

5 files changed

+154
-134
lines changed

5 files changed

+154
-134
lines changed

commands/utils/batch/batch_runner.js

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,16 @@ function run_test(payload, env = "prod") {
3939
reject(responseData);
4040
}
4141
} else {
42-
build_id =
43-
responseData["value"]["message"].split("=")[
44-
responseData["value"]["message"].split("=").length - 1
45-
].split("&")[0];
46-
session_id=responseData["value"]["message"].split("=")[
47-
responseData["value"]["message"].split("=").length - 1
48-
].split("&")[1];
42+
build_id = responseData["value"]["message"]
43+
.split("=")
44+
[responseData["value"]["message"].split("=").length - 1].split(
45+
"&"
46+
)[0];
47+
session_id = responseData["value"]["message"]
48+
.split("=")
49+
[responseData["value"]["message"].split("=").length - 1].split(
50+
"&"
51+
)[1];
4952
if (parseInt(build_id) == 0) {
5053
reject("Some Error occured on Lambdatest Server");
5154
} else {

commands/utils/constants.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ module.exports = {
1010
LAMBDA_CONFIG: "./lambdatest-config.json",
1111
SUPPORTED_CYPRESS_VERSIONS: ["5", "6"],
1212
BUILD_END_STATES: "&status=running,queued,created,initiated,pqueued",
13-
13+
CYPRESS_ENV_FILE_PATH: "cypress.env.json",
1414
prod: {
1515
INTEGRATION_BASE_URL: "https://api.lambdatest.com/liis",
1616
BUILD_BASE_URL: "https://api.lambdatest.com/automation/api/v1/builds/",

commands/utils/set_args.js

Lines changed: 26 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,13 @@ const fs = require("fs");
33
const path = require("path");
44
const process = require("process");
55

6+
function write_file(file_path, content) {
7+
fs.writeFileSync(file_path, content, function (err) {
8+
if (err) throw err;
9+
console.log("File Saved at ", file_path);
10+
});
11+
}
12+
613
function sync_args_from_cmd(args) {
714
return new Promise(function (resolve, reject) {
815
let rawdata = fs.readFileSync(args["lambdatest-config-file"]);
@@ -107,10 +114,19 @@ function sync_args_from_cmd(args) {
107114
}
108115
lt_config["run_settings"]["envs"] = envs;
109116
}
110-
if ("cypress-env-file" in args) {
117+
if (
118+
"cypress-env-file" in args ||
119+
lt_config["run_settings"]["cypress-env-file"]
120+
) {
111121
let env_json;
112-
if (fs.existsSync(args["cypress-env-file"])) {
113-
let raw_env = fs.readFileSync(args["cypress-env-file"]);
122+
let file_path;
123+
if ("cypress-env-file" in args) {
124+
file_path = args["cypress-env-file"];
125+
} else {
126+
file_path = lt_config["run_settings"]["cypress-env-file"];
127+
}
128+
if (fs.existsSync(file_path)) {
129+
let raw_env = fs.readFileSync(file_path);
114130
env_json = JSON.parse(raw_env);
115131

116132
if (lt_config["run_settings"]["envs"]) {
@@ -124,6 +140,11 @@ function sync_args_from_cmd(args) {
124140
} else {
125141
reject("Cypress-env-file file not found but passed in command line");
126142
}
143+
let content = JSON.stringify(lt_config["run_settings"]["envs"], null, 3);
144+
write_file(constants.CYPRESS_ENV_FILE_PATH, content);
145+
} else if (lt_config["run_settings"]["envs"]) {
146+
let content = JSON.stringify(lt_config["run_settings"]["envs"], null, 3);
147+
write_file(constants.CYPRESS_ENV_FILE_PATH, content);
127148
}
128149
//set the build name on the basis of build identifier
129150
if ("build-name" in args) {
@@ -227,7 +248,7 @@ function sync_args_from_cmd(args) {
227248
} else {
228249
lt_config["tunnel_settings"]["autostart"] = true;
229250
}
230-
251+
231252
if ("network" in args) {
232253
lt_config["run_settings"]["network"] = true
233254
? args["network"] == "true"
@@ -237,14 +258,11 @@ function sync_args_from_cmd(args) {
237258
}
238259

239260
if ("headless" in args) {
240-
console.log("headlesss in args - value", args["headless"]);
241-
lt_config["run_settings"]["headless"] = args["headless"]
261+
lt_config["run_settings"]["headless"] = args["headless"];
242262
} else if (!lt_config["run_settings"]["headless"]) {
243-
console.log("headless not present in lt config")
244263
lt_config["run_settings"]["headless"] = false;
245264
}
246265

247-
248266
//get specs from current directory if specs are not passed in config or cli
249267
if (
250268
(lt_config["run_settings"]["specs"] == undefined ||

commands/utils/uploader.js

Lines changed: 85 additions & 85 deletions
Original file line numberDiff line numberDiff line change
@@ -1,93 +1,93 @@
1-
const fs = require('fs');
2-
const request = require("request")
3-
const constants = require("./constants.js")
1+
const fs = require("fs");
2+
const request = require("request");
3+
const constants = require("./constants.js");
44

5-
function get_signed_url(lt_config, prefix,env = "prod") {
6-
return new Promise(function (resolve, reject) {
7-
let options = {
8-
url: constants[env].INTEGRATION_BASE_URL + constants.PROJECT_UPLOAD_URL,
9-
body: JSON.stringify({
10-
"Username": lt_config["lambdatest_auth"]["username"],
11-
"token": lt_config["lambdatest_auth"]["access_key"],
12-
"prefix":prefix
13-
}),
5+
function get_signed_url(lt_config, prefix, env = "prod") {
6+
return new Promise(function (resolve, reject) {
7+
let options = {
8+
url: constants[env].INTEGRATION_BASE_URL + constants.PROJECT_UPLOAD_URL,
9+
body: JSON.stringify({
10+
Username: lt_config["lambdatest_auth"]["username"],
11+
token: lt_config["lambdatest_auth"]["access_key"],
12+
prefix: prefix,
13+
}),
14+
};
15+
let responseData = null;
16+
request.post(options, function (err, resp, body) {
17+
if (err) {
18+
console.log(err);
19+
reject(err);
20+
} else {
21+
try {
22+
responseData = JSON.parse(body);
23+
} catch (e) {
24+
console.log("Error in JSON response", body);
25+
responseData = null;
26+
}
27+
if (resp.statusCode != 200 && resp.statusCode != 202) {
28+
if (responseData && responseData["error"]) {
29+
reject(responseData["error"]);
30+
} else {
31+
reject("error", responseData);
32+
}
33+
} else {
34+
resolve(responseData);
1435
}
36+
}
37+
});
38+
});
39+
}
40+
41+
function upload_zip(lt_config, file_name, prefix = "project", env = "prod") {
42+
return new Promise(function (resolve, reject) {
43+
const stats = fs.statSync(file_name);
44+
let fileSizeInBytes = stats.size;
45+
//Convert the file size to megabytes (optional)
46+
let fileSizeInMegabytes = fileSizeInBytes / 1000000.0;
47+
if (fileSizeInMegabytes > 200) {
48+
reject("File Size exceed 200 MB limit");
49+
return;
50+
}
51+
get_signed_url(lt_config, prefix, env)
52+
.then(function (responseDataURL) {
53+
let options = {
54+
url: responseDataURL["value"]["message"],
55+
formData: {
56+
name: file_name,
57+
filename: file_name,
58+
},
59+
headers: {
60+
"Content-Type": "application/zip",
61+
},
62+
};
63+
options["formData"][file_name] = fs.readFileSync(file_name);
1564
let responseData = null;
16-
request.post(options, function (err, resp, body) {
17-
if (err) {
18-
console.log(err)
19-
reject(err);
65+
request.put(options, function (err, resp, body) {
66+
if (err) {
67+
console.log("error occured while uploading project", err);
68+
reject(err);
69+
} else {
70+
if (resp.statusCode != 200) {
71+
if (responseData && responseData["error"]) {
72+
reject(responseData["error"]);
73+
} else {
74+
reject("error", responseData);
75+
}
2076
} else {
21-
try {
22-
responseData = JSON.parse(body);
23-
} catch (e) {
24-
console.log("Error in JSON response", body)
25-
responseData = null
26-
}
27-
if (resp.statusCode != 200 && resp.statusCode != 202) {
28-
if (responseData && responseData["error"]) {
29-
reject(responseData["error"]);
30-
} else {
31-
reject("error", responseData);
32-
}
33-
} else {
34-
resolve(responseData);
35-
}
77+
console.log(`Uploaded ` + prefix + ` file successfully`);
78+
resolve(responseDataURL);
3679
}
80+
}
3781
});
38-
})
82+
})
83+
.catch(function (err) {
84+
reject("Failed to upload", err);
85+
});
86+
}).catch(function (err) {
87+
console.log("Failed to Upload", err);
88+
});
3989
}
4090

41-
function upload_zip(lt_config, file_name,prefix="project", env = "prod") {
42-
return new Promise(function (resolve, reject) {
43-
const stats = fs.statSync(file_name);
44-
let fileSizeInBytes = stats.size;
45-
//Convert the file size to megabytes (optional)
46-
let fileSizeInMegabytes = fileSizeInBytes / 1000000.0;
47-
if (fileSizeInMegabytes>200){
48-
reject("File Size exceed 200 MB limit")
49-
return
50-
}
51-
get_signed_url(lt_config,prefix, env).then(function (responseDataURL) {
52-
let options = {
53-
url: responseDataURL["value"]["message"],
54-
formData: {
55-
name:file_name,
56-
filename:file_name
57-
},
58-
headers: {
59-
'Content-Type': 'application/zip'
60-
}
61-
}
62-
options["formData"][file_name]=fs.readFileSync(file_name)
63-
let responseData = null;
64-
request.put(options, function (err, resp, body) {
65-
if (err) {
66-
console.log("error occured while uploading project",err)
67-
reject(err);
68-
} else {
69-
if (resp.statusCode != 200) {
70-
if (responseData && responseData["error"]) {
71-
reject(responseData["error"]);
72-
} else {
73-
reject("error", responseData);
74-
}
75-
} else {
76-
console.log(`Uploaded `+prefix+` file successfully`);
77-
resolve(responseDataURL);
78-
}
79-
}
80-
});
81-
}).catch(function (err) {
82-
reject("Failed to upload",err)
83-
})
84-
}).catch(function (err) {
85-
console.log("Failed to Upload",err)
86-
})
87-
}
88-
89-
90-
91-
module.exports={
92-
upload_zip:upload_zip
93-
}
91+
module.exports = {
92+
upload_zip: upload_zip,
93+
};

commands/utils/validate_cli.js

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
1-
const request = require("request")
2-
const constants = require("./constants.js")
1+
const request = require("request");
2+
const constants = require("./constants.js");
33

44
function validate_cli(env = "prod") {
5-
return new Promise(function (resolve, reject) {
6-
let options = {
7-
url: constants[env].INTEGRATION_BASE_URL + constants.CLI,
8-
5+
return new Promise(function (resolve, reject) {
6+
let options = {
7+
url: constants[env].INTEGRATION_BASE_URL + constants.CLI,
8+
};
9+
let responseData = null;
10+
request.get(options, function (err, resp, body) {
11+
if (err) {
12+
console.log(err);
13+
reject(err);
14+
} else {
15+
try {
16+
responseData = JSON.parse(body);
17+
} catch (e) {
18+
console.log("Error in JSON response", body);
19+
responseData = null;
920
}
10-
let responseData = null;
11-
request.get(options, function (err, resp, body) {
12-
if (err) {
13-
console.log(err)
14-
reject(err);
15-
} else {
16-
try {
17-
responseData = JSON.parse(body);
18-
} catch (e) {
19-
console.log("Error in JSON response", body)
20-
responseData = null
21-
}
22-
if (resp.statusCode != 200 && resp.statusCode != 202) {
23-
if (responseData && responseData["error"]) {
24-
reject(responseData["error"]);
25-
} else {
26-
reject("error", responseData);
27-
}
28-
} else {
29-
resolve(responseData);
30-
}
31-
}
32-
});
33-
})
21+
if (resp.statusCode != 200 && resp.statusCode != 202) {
22+
if (responseData && responseData["error"]) {
23+
reject(responseData["error"]);
24+
} else {
25+
reject("error", responseData);
26+
}
27+
} else {
28+
resolve(responseData);
29+
}
30+
}
31+
});
32+
});
3433
}
3534

36-
module.exports={
37-
validate_cli:validate_cli
38-
}
35+
module.exports = {
36+
validate_cli: validate_cli,
37+
};

0 commit comments

Comments
 (0)