From 10b2f699792716b9d2c0fd5901aabbcd28553651 Mon Sep 17 00:00:00 2001 From: Sergei Zharinov <zharinov@users.noreply.github.com> Date: Mon, 8 Mar 2021 09:19:36 +0400 Subject: [PATCH] refactor(gradle-lite): Deduplicate registryUrls (#9023) * refactor(gradle-lite): Deduplicate registryUrls * Add unit test Co-authored-by: Michael Kriese <michael.kriese@visualon.de> --- lib/manager/gradle-lite/extract.spec.ts | 39 +++++++++++++++++++++++++ lib/manager/gradle-lite/extract.ts | 8 +++-- 2 files changed, 44 insertions(+), 3 deletions(-) diff --git a/lib/manager/gradle-lite/extract.spec.ts b/lib/manager/gradle-lite/extract.spec.ts index dfe1d36831..babed33957 100644 --- a/lib/manager/gradle-lite/extract.spec.ts +++ b/lib/manager/gradle-lite/extract.spec.ts @@ -99,4 +99,43 @@ describe('manager/gradle-lite/extract', () => { { packageFile: 'aaa/bbb/build.gradle', deps: [] }, ]); }); + + it('deduplicates registry urls', async () => { + const fsMock = { + 'build.gradle': [ + 'url "https://repo.maven.apache.org/maven2"', + 'url "https://repo.maven.apache.org/maven2"', + 'url "https://example.com"', + 'url "https://example.com"', + 'id "foo.bar" version "1.2.3"', + '"foo:bar:1.2.3"', + ].join(';\n'), + }; + + mockFs(fsMock); + + const res = await extractAllPackageFiles({} as never, Object.keys(fsMock)); + + expect(res).toMatchObject([ + { + packageFile: 'build.gradle', + deps: [ + { + depType: 'plugin', + registryUrls: [ + 'https://repo.maven.apache.org/maven2', + 'https://plugins.gradle.org/m2/', + 'https://example.com', + ], + }, + { + registryUrls: [ + 'https://repo.maven.apache.org/maven2', + 'https://example.com', + ], + }, + ], + }, + ]); + }); }); diff --git a/lib/manager/gradle-lite/extract.ts b/lib/manager/gradle-lite/extract.ts index d5e5bccfc3..80c5db748b 100644 --- a/lib/manager/gradle-lite/extract.ts +++ b/lib/manager/gradle-lite/extract.ts @@ -91,9 +91,11 @@ export async function extractAllPackageFiles( deps.push({ ...dep, registryUrls: [ - ...defaultRegistryUrls, - ...(dep.registryUrls || []), - ...registryUrls, + ...new Set([ + ...defaultRegistryUrls, + ...(dep.registryUrls || []), + ...registryUrls, + ]), ], }); packageFilesByName[key] = pkgFile; -- GitLab