From 7489561fbfb676a8948eff89730b99bf4d4fc63e Mon Sep 17 00:00:00 2001 From: Tomas Bjerre Date: Tue, 16 Aug 2022 15:49:56 +0200 Subject: [PATCH] feat: including version in CYPRESS_DOWNLOAD_PATH_TEMPLATE (refs #5141 #16976 #22864) (#23194) Co-authored-by: Blue F Co-authored-by: Matt Henkes --- cli/__snapshots__/download_spec.js | 4 ++++ cli/lib/tasks/download.js | 7 +++++-- cli/test/lib/tasks/download_spec.js | 7 +++++++ 3 files changed, 16 insertions(+), 2 deletions(-) diff --git a/cli/__snapshots__/download_spec.js b/cli/__snapshots__/download_spec.js index 1a9f8c60ccad..c913289d5846 100644 --- a/cli/__snapshots__/download_spec.js +++ b/cli/__snapshots__/download_spec.js @@ -45,6 +45,10 @@ exports['desktop url from template'] = ` https://download.cypress.io/desktop/0.20.2/OS-ARCH/cypress.zip ` +exports['desktop url from template with version'] = ` +https://mycompany/0.20.2/OS-ARCH/cypress.zip +` + exports['desktop url from template with escaped dollar sign'] = ` https://download.cypress.io/desktop/0.20.2/OS-ARCH/cypress.zip ` diff --git a/cli/lib/tasks/download.js b/cli/lib/tasks/download.js index 1aab08c2a85a..6b8cd38b69b2 100644 --- a/cli/lib/tasks/download.js +++ b/cli/lib/tasks/download.js @@ -60,7 +60,7 @@ const getCA = () => { }) } -const prepend = (arch, urlPath) => { +const prepend = (arch, urlPath, version) => { const endpoint = url.resolve(getBaseUrl(), urlPath) const platform = os.platform() const pathTemplate = util.getEnv('CYPRESS_DOWNLOAD_PATH_TEMPLATE', true) @@ -71,6 +71,7 @@ const prepend = (arch, urlPath) => { .replace(/\\?\$\{endpoint\}/, endpoint) .replace(/\\?\$\{platform\}/, platform) .replace(/\\?\$\{arch\}/, arch) + .replace(/\\?\$\{version\}/, version) ) : `${endpoint}?platform=${platform}&arch=${arch}` } @@ -82,7 +83,9 @@ const getUrl = (arch, version) => { return version } - return version ? prepend(arch, `desktop/${version}`) : prepend(arch, 'desktop') + const urlPath = version ? `desktop/${version}` : 'desktop' + + return prepend(arch, urlPath, version) } const statusMessage = (err) => { diff --git a/cli/test/lib/tasks/download_spec.js b/cli/test/lib/tasks/download_spec.js index ee88fc234de5..13c1176795b4 100644 --- a/cli/test/lib/tasks/download_spec.js +++ b/cli/test/lib/tasks/download_spec.js @@ -74,6 +74,13 @@ describe('lib/tasks/download', function () { snapshot('desktop url from template', normalize(url)) }) + it('returns custom url from template with version', () => { + process.env.CYPRESS_DOWNLOAD_PATH_TEMPLATE = 'https://mycompany/${version}/${platform}-${arch}/cypress.zip' + const url = download.getUrl('ARCH', '0.20.2') + + snapshot('desktop url from template with version', normalize(url)) + }) + it('returns custom url from template with escaped dollar sign', () => { process.env.CYPRESS_DOWNLOAD_PATH_TEMPLATE = '\\${endpoint}/\\${platform}-\\${arch}/cypress.zip' const url = download.getUrl('ARCH', '0.20.2')