Handle packages with no released versions in [PackagistVersion] (#3746)

This commit is contained in:
Pierre-Yves B
2019-07-20 17:52:53 +01:00
committed by GitHub
parent 236decac29
commit 345c26f72d
2 changed files with 17 additions and 1 deletions

View File

@@ -8,6 +8,7 @@ const {
keywords,
BasePackagistService,
} = require('./packagist-base')
const { NotFound } = require('..')
const schema = Joi.object({
package: Joi.object({
@@ -68,6 +69,13 @@ module.exports = class PackagistVersion extends BasePackagistService {
}
}
static render({ version }) {
if (version === undefined) {
throw new NotFound({ prettyMessage: 'no released version found' })
}
return renderVersionBadge({ version })
}
transform({ type, json }) {
const versionsData = json.package.versions
let versions = Object.keys(versionsData)
@@ -108,6 +116,6 @@ module.exports = class PackagistVersion extends BasePackagistService {
schema: type === 'v' ? allVersionsSchema : schema,
})
const { version } = this.transform({ type, json })
return renderVersionBadge({ version })
return this.constructor.render({ version })
}
}

View File

@@ -22,6 +22,14 @@ t.create('version (valid)')
message: isPackagistVersion,
})
t.create('version (no releases)')
.get('/v/wsg/hello.json')
.expectBadge({
label: 'packagist',
message: 'no released version found',
color: 'red',
})
t.create('version (invalid package name)')
.get('/v/frodo/is-not-a-package.json')
.expectBadge({ label: 'packagist', message: 'not found' })