From ddfcd80ddb652a5bbb16e26327128a533417e666 Mon Sep 17 00:00:00 2001 From: nigredo-tori Date: Sun, 16 Feb 2020 19:44:40 +0700 Subject: [PATCH] [Nexus] 3: set prerelease=false for /r/* badges (#4659) * Add a test for #4640 * Set prerelease=false for /r/* Nexus 3 badges * Fix the test following PR discussion Co-authored-by: Pierre-Yves B. --- services/nexus/nexus.service.js | 17 ++++++++++++----- services/nexus/nexus.tester.js | 12 ++++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) diff --git a/services/nexus/nexus.service.js b/services/nexus/nexus.service.js index 936a12c4e9..d575173ead 100644 --- a/services/nexus/nexus.service.js +++ b/services/nexus/nexus.service.js @@ -48,7 +48,7 @@ const nexus2ResolveApiSchema = Joi.object({ const queryParamSchema = Joi.object({ server: optionalUrl.required(), queryOpt: Joi.string() - .regex(/(:[\w.]+=[\w-. ]+)+/i) + .regex(/(:[\w.]+=[^:]*)+/i) .optional(), nexusVersion: Joi.equal('2', '3'), }).required() @@ -240,10 +240,17 @@ module.exports = class Nexus extends BaseJsonService { name: artifactId, sort: 'version', } - if (repo === 's') { - qs.prerelease = 'true' - } else if (repo !== 'r') { - qs.repository = repo + + switch (repo) { + case 's': + qs.prerelease = 'true' + break + case 'r': + qs.prerelease = 'false' + break + default: + qs.repository = repo + break } if (queryOpt) { diff --git a/services/nexus/nexus.tester.js b/services/nexus/nexus.tester.js index 21c9ed661a..d0275d04c4 100644 --- a/services/nexus/nexus.tester.js +++ b/services/nexus/nexus.tester.js @@ -281,3 +281,15 @@ t.create('Nexus 3 - repository version with query') label: 'nexus', message: isVersion, }) + +t.create('Nexus 3 - search release version without snapshots') + .get( + // Limit the version from above, so that any later artifacts don't break this test. + `/r/org.pentaho.adaptive/daemon.json?server=https://nexus.pentaho.org&nexusVersion=3&queryOpt=${encodeURIComponent( + ':maven.baseVersion=<8.1.0.1' + )}` + ) + .expectBadge({ + label: 'nexus', + message: 'v8.1.0.0-365', + })