Skip to content

Commit

Permalink
fix [bower] version badge (#9567)
Browse files Browse the repository at this point in the history
* fix [bower] version badge

* update tests
  • Loading branch information
chris48s committed Sep 11, 2023
1 parent e8b4467 commit f545553
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 45 deletions.
24 changes: 5 additions & 19 deletions services/bower/bower-version.service.js
Original file line number Diff line number Diff line change
@@ -1,36 +1,23 @@
import Joi from 'joi'
import { renderVersionBadge } from '../version.js'
import { InvalidResponse } from '../index.js'
import BaseBowerService from './bower-base.js'

const queryParamSchema = Joi.object({
include_prereleases: Joi.equal(''),
}).required()

export default class BowerVersion extends BaseBowerService {
static category = 'version'
static route = { base: 'bower/v', pattern: ':packageName', queryParamSchema }
static route = { base: 'bower/v', pattern: ':packageName' }

static examples = [
{
title: 'Bower Version',
namedParams: { packageName: 'bootstrap' },
staticPreview: renderVersionBadge({ version: '4.2.1' }),
},
{
title: 'Bower Version (including pre-releases)',
namedParams: { packageName: 'bootstrap' },
queryParams: { include_prereleases: null },
staticPreview: renderVersionBadge({ version: '4.2.1' }),
},
]

static defaultBadgeData = { label: 'bower' }

static transform(data, includePrereleases) {
const version = includePrereleases
? data.latest_release_number
: data.latest_stable_release_number
static transform(data) {
const version = data.latest_release_number

if (!version) {
throw new InvalidResponse({ prettyMessage: 'no releases' })
Expand All @@ -39,10 +26,9 @@ export default class BowerVersion extends BaseBowerService {
return version
}

async handle({ packageName }, queryParams) {
async handle({ packageName }) {
const data = await this.fetch({ packageName })
const includePrereleases = queryParams.include_prereleases !== undefined
const version = this.constructor.transform(data, includePrereleases)
const version = this.constructor.transform(data)

return renderVersionBadge({ version })
}
Expand Down
30 changes: 5 additions & 25 deletions services/bower/bower-version.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,34 +8,14 @@ import BowerVersion from './bower-version.service.js'

describe('BowerVersion', function () {
test(BowerVersion.transform, () => {
given(
{
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
},
false,
).expect('1.8.3')
given(
{
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
},
true,
).expect('2.0.0-beta')
given({
latest_release_number: '2.0.0-beta',
latest_stable_release_number: '1.8.3',
}).expect('2.0.0-beta')
})

it('throws `no releases` InvalidResponse if no stable version', function () {
expect(() =>
BowerVersion.transform({ latest_release_number: 'panda' }, false),
)
.to.throw(InvalidResponse)
.with.property('prettyMessage', 'no releases')
})

it('throws `no releases` InvalidResponse if no prereleases', function () {
expect(() =>
BowerVersion.transform({ latest_stable_release_number: 'penguin' }, true),
)
expect(() => BowerVersion.transform({}))
.to.throw(InvalidResponse)
.with.property('prettyMessage', 'no releases')
})
Expand Down
2 changes: 1 addition & 1 deletion services/bower/bower-version.tester.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ export const t = new ServiceTester({
pathPrefix: '/bower',
})

t.create('version').timeout(10000).get('/v/angular.json').expectBadge({
t.create('version').timeout(10000).get('/v/backbone.json').expectBadge({
label: 'bower',
message: isVPlusDottedVersionAtLeastOne,
})
Expand Down

0 comments on commit f545553

Please sign in to comment.