From f276e0c301f44fdbd5ed04e4181c767bc22bf4d8 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 18 Jul 2019 23:26:09 +0200 Subject: [PATCH] fix(bazel): handle url updating instead of urls --- lib/manager/bazel/update.js | 12 ++++++++++-- test/manager/bazel/update.spec.js | 22 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/lib/manager/bazel/update.js b/lib/manager/bazel/update.js index 65c7bc31f3..e11ce82d6d 100644 --- a/lib/manager/bazel/update.js +++ b/lib/manager/bazel/update.js @@ -16,12 +16,20 @@ function updateWithNewVersion(content, currentValue, newValue) { return newContent; } +function extractUrl(flattened) { + const urlMatch = flattened.match(/url="(.*?)"/); + if (!urlMatch) { + logger.debug('Cannot locate urls in new definition'); + return null; + } + return [urlMatch[1]]; +} + function extractUrls(content) { const flattened = content.replace(/\n/g, '').replace(/\s/g, ''); const urlsMatch = flattened.match(/urls?=\[.*?\]/); if (!urlsMatch) { - logger.debug({ content }, 'Cannot locate urls in new definition'); - return null; + return extractUrl(flattened); } const urls = urlsMatch[0] .replace(/urls?=\[/, '') diff --git a/test/manager/bazel/update.spec.js b/test/manager/bazel/update.spec.js index d2719ef580..676875cc93 100644 --- a/test/manager/bazel/update.spec.js +++ b/test/manager/bazel/update.spec.js @@ -132,6 +132,28 @@ describe('manager/bazel/update', () => { expect(res).not.toEqual(fileWithBzlExtension); expect(res.indexOf('0.8.0')).not.toBe(-1); }); + it('updates finds url instead of urls', async () => { + const upgrade = { + depName: 'bazel_skylib', + depType: 'http_archive', + repo: 'bazelbuild/bazel-skylib', + def: `http_archive( + name = "bazel_skylib", + sha256 = "eb5c57e4c12e68c0c20bc774bfbc60a568e800d025557bc4ea022c6479acc867", + strip_prefix = "bazel-skylib-0.6.0", + url = "https://github.com/bazelbuild/bazel-skylib/archive/0.6.0.tar.gz", + )`, + currentValue: '0.6.0', + newValue: '0.8.0', + }; + hasha.fromStream.mockReturnValueOnce('abc123'); + const res = await bazelfile.updateDependency( + fileWithBzlExtension, + upgrade + ); + expect(res).not.toEqual(fileWithBzlExtension); + expect(res.indexOf('0.8.0')).not.toBe(-1); + }); it('returns null if no urls resolve hashes', async () => { const upgrade = { depName: 'bazel_skylib', -- GitLab