Handle packages with no released versions in [PackagistVersion] (#3746)
This commit is contained in:
@@ -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 })
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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' })
|
||||
|
||||
Reference in New Issue
Block a user