Skip to content

Commit bcc80d5

Browse files
Merge pull request #103 from japneetlambdatest/dev
Cypress Version Handling
2 parents 852a474 + a99d362 commit bcc80d5

File tree

3 files changed

+63
-13
lines changed

3 files changed

+63
-13
lines changed

commands/utils/archive.js

Lines changed: 48 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 {
@@ -72,24 +73,58 @@ function archive_project(lt_config) {
7273
{ cwd: process.cwd(), ignore: ignore_files, dot: false },
7374
{ prefix: "project/" }
7475
);
76+
let raw_package_data = fs.readFileSync("package.json");
77+
let package = JSON.parse(raw_package_data);
7578
//OverRide NPM Dependencies
76-
if (lt_config.run_settings.npm_dependencies) {
79+
if (
80+
lt_config.run_settings.npm_dependencies &&
81+
!lt_config.run_settings.cypress_version
82+
) {
7783
console.log("Overriding NPM Dependencies");
78-
let rawdata = fs.readFileSync("package.json");
79-
80-
let package = JSON.parse(rawdata);
8184
package.dependencies = lt_config.run_settings.npm_dependencies;
8285
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-
);
86+
package.dependencies.cypress = semver.coerce(
87+
package.dependencies.cypress
88+
).version;
89+
} else if (
90+
lt_config.run_settings.npm_dependencies &&
91+
lt_config.run_settings.cypress_version
92+
) {
93+
console.log("Overriding NPM Dependencies");
94+
package.dependencies = lt_config.run_settings.npm_dependencies;
95+
package.devDependencies = {};
96+
console.log("Overriding Cypress Version");
97+
package.dependencies.cypress = semver.coerce(
98+
lt_config.run_settings.cypress_version
99+
).version;
100+
} else if (
101+
!lt_config.run_settings.npm_dependencies &&
102+
lt_config.run_settings.cypress_version
103+
) {
104+
console.log("Overriding Cypress Version");
105+
package.dependencies.cypress = semver.coerce(
106+
lt_config.run_settings.cypress_version
107+
).version;
108+
} else {
109+
if (package.dependencies.hasOwnProperty("cypress")) {
110+
package.dependencies.cypress = semver.coerce(
111+
package.dependencies.cypress
112+
).version;
113+
} else {
114+
package.devDependencies.cypress = semver.coerce(
115+
package.devDependencies.cypress
116+
).version;
117+
}
92118
}
119+
archive.append(
120+
JSON.stringify(package, null, 4),
121+
{
122+
name: "project/package.json",
123+
cwd: process.cwd(),
124+
ignore: ignore_files,
125+
},
126+
{ prefix: "project/" }
127+
);
93128
if (fs.existsSync(".npmrc")) {
94129
let raw_data = fs.readFileSync(".npmrc", "utf8");
95130
if (

commands/utils/validate.js

Lines changed: 14 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"

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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)