From 500d901504ab772eda9dae497f0e187709a73471 Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Tue, 10 Nov 2020 12:43:27 +0530 Subject: [PATCH 1/7] add cypress_version key --- bin/commands/runs.js | 4 ++++ bin/helpers/capabilityHelper.js | 2 ++ bin/helpers/constants.js | 3 ++- 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/bin/commands/runs.js b/bin/commands/runs.js index 0d9a0e5c..92ddc6cb 100644 --- a/bin/commands/runs.js +++ b/bin/commands/runs.js @@ -66,6 +66,10 @@ module.exports = function run(args) { logger.warn(Constants.userMessages.NO_PARALLELS); } + if (bsConfig.cypress_version && bsConfig.cypress_version !== data.cypress_version) { + logger.warn(Constants.userMessages.CYPRESS_VERSION_CHANGED); + } + if (!args.disableNpmWarning && bsConfig.run_settings.npm_dependencies && Object.keys(bsConfig.run_settings.npm_dependencies).length <= 0) logger.warn(Constants.userMessages.NO_NPM_DEPENDENCIES); logger.info(message); diff --git a/bin/helpers/capabilityHelper.js b/bin/helpers/capabilityHelper.js index bb7a3268..860b0471 100644 --- a/bin/helpers/capabilityHelper.js +++ b/bin/helpers/capabilityHelper.js @@ -81,6 +81,8 @@ const caps = (bsConfig, zip) => { } } + if (bsConfig.cypress_version) obj.cypress_version = bsConfig.cypress_version; + if(obj.parallels === Constants.cliMessages.RUN.DEFAULT_PARALLEL_MESSAGE) obj.parallels = undefined if (obj.project) logger.log(`Project name is: ${obj.project}`); diff --git a/bin/helpers/constants.js b/bin/helpers/constants.js index 0f89948a..dbf5813b 100644 --- a/bin/helpers/constants.js +++ b/bin/helpers/constants.js @@ -15,7 +15,8 @@ const userMessages = { VISIT_DASHBOARD: "Visit the Automate dashboard for test reporting:", CONFLICTING_INIT_ARGUMENTS: "Conflicting arguments given. You can use --path only with a file name, and not with a file path.", NO_PARALLELS: "Your tests will run sequentially. Read more about running your tests in parallel here: https://www.browserstack.com/docs/automate/cypress/run-tests-in-parallel", - NO_NPM_DEPENDENCIES: "No npm dependencies specified. Read more here: https://www.browserstack.com/docs/automate/cypress/npm-packages. You can suppress this warning by using --disable-npm-warning flag." + NO_NPM_DEPENDENCIES: "No npm dependencies specified. Read more here: https://www.browserstack.com/docs/automate/cypress/npm-packages. You can suppress this warning by using --disable-npm-warning flag.", + CYPRESS_VERSION_CHANGED: "You passed an invalid version and we changed it to a proper one." }; const validationMessages = { From cf22819461738386a9eb013723a2754b875337e4 Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Thu, 26 Nov 2020 16:47:03 +0530 Subject: [PATCH 2/7] version change message as per spec --- bin/commands/runs.js | 3 ++- bin/helpers/constants.js | 2 +- bin/helpers/utils.js | 6 ++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/bin/commands/runs.js b/bin/commands/runs.js index f33f6969..8d2a05e3 100644 --- a/bin/commands/runs.js +++ b/bin/commands/runs.js @@ -68,7 +68,8 @@ module.exports = function run(args) { } if (bsConfig.cypress_version && bsConfig.cypress_version !== data.cypress_version) { - logger.warn(Constants.userMessages.CYPRESS_VERSION_CHANGED); + message = utils.versionChangedMessage(bsConfig.cypress_version, data.cypress_version) + logger.warn(message); } if (!args.disableNpmWarning && bsConfig.run_settings.npm_dependencies && Object.keys(bsConfig.run_settings.npm_dependencies).length <= 0) { diff --git a/bin/helpers/constants.js b/bin/helpers/constants.js index b30e013a..53b22aff 100644 --- a/bin/helpers/constants.js +++ b/bin/helpers/constants.js @@ -36,7 +36,7 @@ const userMessages = { FATAL_NETWORK_ERROR: `fatal: unable to access '${config.buildUrl}': Could not resolve host: ${config.rails_host}`, RETRY_LIMIT_EXCEEDED: `Max retries exceeded trying to connect to the host (retries: ${config.retries})`, CHECK_DASHBOARD_AT: "Please check the build status at: ", - CYPRESS_VERSION_CHANGED: "You passed an invalid version and we changed it to a proper one." + CYPRESS_VERSION_CHANGED: "You specified as the preferred Cypress version. Note that we run the tests on " }; const validationMessages = { diff --git a/bin/helpers/utils.js b/bin/helpers/utils.js index 5d834a22..7b4e02d4 100644 --- a/bin/helpers/utils.js +++ b/bin/helpers/utils.js @@ -374,3 +374,9 @@ exports.getNetworkErrorMessage = (dashboard_url) => { + Constants.userMessages.CHECK_DASHBOARD_AT + dashboard_url return chalk.red(message) } + +exports.versionChangedMessage = (preferredVersion, actualVersion) => { + let message = Constants.userMessages.CYPRESS_VERSION_CHANGED.replace("", preferredVersion); + message = version_message.replace("", actualVersion); + return message +} From 53d9aa1a0e6b176edb850dd0e7575bd27185cab7 Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Thu, 26 Nov 2020 19:58:09 +0530 Subject: [PATCH 3/7] fix version upgrade message --- bin/helpers/utils.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/helpers/utils.js b/bin/helpers/utils.js index 7b4e02d4..094ad4d9 100644 --- a/bin/helpers/utils.js +++ b/bin/helpers/utils.js @@ -377,6 +377,6 @@ exports.getNetworkErrorMessage = (dashboard_url) => { exports.versionChangedMessage = (preferredVersion, actualVersion) => { let message = Constants.userMessages.CYPRESS_VERSION_CHANGED.replace("", preferredVersion); - message = version_message.replace("", actualVersion); + message = message.replace("", actualVersion); return message } From 5e332104a3a32ec71dd535b0f3ab49bda0ee8ecd Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Thu, 26 Nov 2020 20:02:28 +0530 Subject: [PATCH 4/7] make version message a warning --- bin/commands/runs.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bin/commands/runs.js b/bin/commands/runs.js index 8d2a05e3..1ca39417 100644 --- a/bin/commands/runs.js +++ b/bin/commands/runs.js @@ -68,8 +68,8 @@ module.exports = function run(args) { } if (bsConfig.cypress_version && bsConfig.cypress_version !== data.cypress_version) { - message = utils.versionChangedMessage(bsConfig.cypress_version, data.cypress_version) - logger.warn(message); + let versionMessage = utils.versionChangedMessage(bsConfig.cypress_version, data.cypress_version) + logger.warn(versionMessage); } if (!args.disableNpmWarning && bsConfig.run_settings.npm_dependencies && Object.keys(bsConfig.run_settings.npm_dependencies).length <= 0) { From db4ec3c09bc4e6597e3674591cc713e860a43fb5 Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Mon, 30 Nov 2020 12:41:48 +0530 Subject: [PATCH 5/7] modify version change message --- bin/helpers/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/helpers/constants.js b/bin/helpers/constants.js index 53b22aff..a90293ec 100644 --- a/bin/helpers/constants.js +++ b/bin/helpers/constants.js @@ -36,7 +36,7 @@ const userMessages = { FATAL_NETWORK_ERROR: `fatal: unable to access '${config.buildUrl}': Could not resolve host: ${config.rails_host}`, RETRY_LIMIT_EXCEEDED: `Max retries exceeded trying to connect to the host (retries: ${config.retries})`, CHECK_DASHBOARD_AT: "Please check the build status at: ", - CYPRESS_VERSION_CHANGED: "You specified as the preferred Cypress version. Note that we run the tests on " + CYPRESS_VERSION_CHANGED: "Your build will run using instead of . Read more about supported versions here: http://browserstack.com/docs/automate/cypress/supported-versions" }; const validationMessages = { From e070a00ce5b3d8017d3677d64301ea1081c79ecb Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Mon, 30 Nov 2020 13:46:53 +0530 Subject: [PATCH 6/7] add unit tests --- test/unit/bin/helpers/capabilityHelper.js | 30 +++++++++++++++++++++++ test/unit/bin/helpers/utils.js | 9 ++++++- 2 files changed, 38 insertions(+), 1 deletion(-) diff --git a/test/unit/bin/helpers/capabilityHelper.js b/test/unit/bin/helpers/capabilityHelper.js index 9e379f64..5de63406 100644 --- a/test/unit/bin/helpers/capabilityHelper.js +++ b/test/unit/bin/helpers/capabilityHelper.js @@ -44,6 +44,36 @@ describe("capabilityHelper.js", () => { }); }); + it("handle cypress version passed", () => { + let zip_url = "bs://"; + let cypress_version = "version" + let bsConfig = { + auth: { + username: "random", + access_key: "random", + }, + browsers: [ + { + browser: "chrome", + os: "Windows 10", + versions: ["78", "77"], + }, + ], + cypress_version: cypress_version, + connection_settings: { + local: true + } + }; + return capabilityHelper + .caps(bsConfig, { zip_url: zip_url }) + .then(function (data) { + chai.assert.equal(JSON.parse(data).cypress_version, cypress_version); + }) + .catch((error) => { + chai.assert.fail("Promise error"); + }); + }); + it("handle empty test_suite", () => { let zip_url = undefined; let incorrectBsConfig = { diff --git a/test/unit/bin/helpers/utils.js b/test/unit/bin/helpers/utils.js index 2b262a33..a28f9fba 100644 --- a/test/unit/bin/helpers/utils.js +++ b/test/unit/bin/helpers/utils.js @@ -1135,8 +1135,15 @@ describe('utils', () => { let message = constant.userMessages.FATAL_NETWORK_ERROR + '\n' + constant.userMessages.RETRY_LIMIT_EXCEEDED + '\n' + constant.userMessages.CHECK_DASHBOARD_AT + dashboard_url - utils.getNetworkErrorMessage(dashboard_url); expect(utils.getNetworkErrorMessage(dashboard_url)).to.eq(chalk.red(message)) }); }); + + describe('#versionChangedMessage', () => { + it('should return proper error message with placeholders replaced', () => { + let preferredVersion = "v1", actualVersion = "v2"; + let message = constant.userMessages.CYPRESS_VERSION_CHANGED.replace("", preferredVersion).replace("", actualVersion); + expect(utils.versionChangedMessage(preferredVersion, actualVersion)).to.eq(message) + }); + }) }); From 2f795a8216bfae01c59d0b60206a8f2ade1637d8 Mon Sep 17 00:00:00 2001 From: Sagar Ganiga Date: Mon, 30 Nov 2020 20:51:50 +0530 Subject: [PATCH 7/7] improve error message --- bin/helpers/constants.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/helpers/constants.js b/bin/helpers/constants.js index 4697b1b8..bf8b33a2 100644 --- a/bin/helpers/constants.js +++ b/bin/helpers/constants.js @@ -37,7 +37,7 @@ const userMessages = { FATAL_NETWORK_ERROR: `fatal: unable to access '${config.buildUrl}': Could not resolve host: ${config.rails_host}`, RETRY_LIMIT_EXCEEDED: `Max retries exceeded trying to connect to the host (retries: ${config.retries})`, CHECK_DASHBOARD_AT: "Please check the build status at: ", - CYPRESS_VERSION_CHANGED: "Your build will run using instead of . Read more about supported versions here: http://browserstack.com/docs/automate/cypress/supported-versions" + CYPRESS_VERSION_CHANGED: "Your build will run using Cypress instead of Cypress . Read more about supported versions here: http://browserstack.com/docs/automate/cypress/supported-versions" }; const validationMessages = {