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', + })