Skip to content

Commit 62d74d2

Browse files
Merge pull request #109 from LambdaTest/dev
Release 2.2.0 20 Feb
2 parents fa24fdf + 4d96057 commit 62d74d2

File tree

3 files changed

+79
-14
lines changed

3 files changed

+79
-14
lines changed

commands/utils/archive.js

Lines changed: 56 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ const fs = require("fs");
33
const archiver = require("archiver");
44
const constants = require("./constants.js");
55
const process = require("process");
6+
const semver = require("semver");
67

78
function delete_archive(file_name) {
89
try {
@@ -55,6 +56,8 @@ function archive_project(lt_config) {
5556
"cypress/videos/**/*",
5657
"cypress/results/**/*",
5758
"lambdatest-artefacts/**/*",
59+
"*.lock",
60+
"package-lock.json",
5861
].concat(lt_config["run_settings"]["ignore_files"]);
5962
//If we have some env variables passed through cli or config file we will ignore the original file and create a new one using
6063
//the parameter appended in config file through code
@@ -72,24 +75,64 @@ function archive_project(lt_config) {
7275
{ cwd: process.cwd(), ignore: ignore_files, dot: false },
7376
{ prefix: "project/" }
7477
);
78+
let raw_package_data = fs.readFileSync("package.json");
79+
let package = JSON.parse(raw_package_data);
7580
//OverRide NPM Dependencies
76-
if (lt_config.run_settings.npm_dependencies) {
81+
if (
82+
lt_config.run_settings.npm_dependencies &&
83+
!lt_config.run_settings.cypress_version
84+
) {
7785
console.log("Overriding NPM Dependencies");
78-
let rawdata = fs.readFileSync("package.json");
79-
80-
let package = JSON.parse(rawdata);
8186
package.dependencies = lt_config.run_settings.npm_dependencies;
8287
package.devDependencies = {};
83-
archive.append(
84-
JSON.stringify(package, null, 4),
85-
{
86-
name: "project/package.json",
87-
cwd: process.cwd(),
88-
ignore: ignore_files,
89-
},
90-
{ prefix: "project/" }
91-
);
88+
package.dependencies.cypress = semver.coerce(
89+
package.dependencies.cypress
90+
).version;
91+
} else if (
92+
lt_config.run_settings.npm_dependencies &&
93+
lt_config.run_settings.cypress_version
94+
) {
95+
console.log("Overriding NPM Dependencies");
96+
package.dependencies = lt_config.run_settings.npm_dependencies;
97+
package.devDependencies = {};
98+
console.log("Overriding Cypress Version");
99+
package.dependencies.cypress = semver.coerce(
100+
lt_config.run_settings.cypress_version
101+
).version;
102+
} else if (
103+
!lt_config.run_settings.npm_dependencies &&
104+
lt_config.run_settings.cypress_version
105+
) {
106+
console.log("Overriding Cypress Version");
107+
if (package.dependencies.hasOwnProperty("cypress")) {
108+
package.dependencies.cypress = semver.coerce(
109+
lt_config.run_settings.cypress_version
110+
).version;
111+
} else {
112+
package.devDependencies.cypress = semver.coerce(
113+
lt_config.run_settings.cypress_version
114+
).version;
115+
}
116+
} else {
117+
if (package.dependencies.hasOwnProperty("cypress")) {
118+
package.dependencies.cypress = semver.coerce(
119+
package.dependencies.cypress
120+
).version;
121+
} else {
122+
package.devDependencies.cypress = semver.coerce(
123+
package.devDependencies.cypress
124+
).version;
125+
}
92126
}
127+
archive.append(
128+
JSON.stringify(package, null, 4),
129+
{
130+
name: "project/package.json",
131+
cwd: process.cwd(),
132+
ignore: ignore_files,
133+
},
134+
{ prefix: "project/" }
135+
);
93136
if (fs.existsSync(".npmrc")) {
94137
let raw_data = fs.readFileSync(".npmrc", "utf8");
95138
if (

commands/utils/validate.js

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,20 @@ module.exports = validate_config = function (lt_config) {
106106
}
107107
}
108108
}
109+
if (
110+
lt_config.run_settings.hasOwnProperty("cypress_version") &&
111+
lt_config.run_settings.cypress_version != ""
112+
) {
113+
cypress_flag = true;
114+
} else if (
115+
lt_config.run_settings.hasOwnProperty("cypress_version") &&
116+
lt_config.run_settings.cypress_version == ""
117+
) {
118+
cypress_flag = false;
119+
reject(
120+
"Error!! cypress_version can not be blank, either provide a value or remove the key"
121+
);
122+
}
109123
if (cypress_flag == false && lt_config.run_settings.npm_dependencies) {
110124
reject(
111125
"Error!!Cypress dependency is not present in npm_dependencies"
@@ -158,6 +172,13 @@ module.exports = validate_config = function (lt_config) {
158172
}
159173
}
160174
}
175+
if ("smart_ui" in lt_config.run_settings) {
176+
if (!("project" in lt_config.run_settings.smart_ui)) {
177+
reject("Smart UI project name is missing");
178+
} else if (lt_config.run_settings.smart_ui.project == "") {
179+
reject("Smart UI porject name can not be blank");
180+
}
181+
}
161182
resolve("Validated the Config");
162183
});
163184
};

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "lambdatest-cypress-cli",
3-
"version": "2.1.9",
3+
"version": "2.2.0",
44
"description": "The lambdatest-cypress-cli is LambdaTest's command-line interface (CLI) aimed to help you run your Cypress tests on LambdaTest platform.",
55
"homepage": "https://github.com/LambdaTest/lambdatest-cypress-cli",
66
"author": "LambdaTest <keys@lambdatest.com>",
@@ -22,6 +22,7 @@
2222
"glob": "^7.1.6",
2323
"node-stream-zip": "^1.15.0",
2424
"request": "^2.88.2",
25+
"semver": "^7.3.5",
2526
"ws": "^7.4.3",
2627
"yargs": "^16.1.0"
2728
},

0 commit comments

Comments
 (0)