add [homebrew] cask service (#4228)
* add homebrew cask service * rename formula to cask
This commit is contained in:
committed by
repo-ranger[bot]
parent
b7f3f175a5
commit
3544ea03f8
48
services/homebrew/homebrew-cask.service.js
Normal file
48
services/homebrew/homebrew-cask.service.js
Normal file
@@ -0,0 +1,48 @@
|
||||
'use strict'
|
||||
|
||||
const Joi = require('@hapi/joi')
|
||||
const { renderVersionBadge } = require('../version')
|
||||
const { BaseJsonService } = require('..')
|
||||
|
||||
const schema = Joi.object({
|
||||
version: Joi.string().required(),
|
||||
}).required()
|
||||
|
||||
module.exports = class HomebrewCask extends BaseJsonService {
|
||||
static get category() {
|
||||
return 'version'
|
||||
}
|
||||
|
||||
static get route() {
|
||||
return {
|
||||
base: 'homebrew/cask/v',
|
||||
pattern: ':cask',
|
||||
}
|
||||
}
|
||||
|
||||
static get examples() {
|
||||
return [
|
||||
{
|
||||
title: 'homebrew cask',
|
||||
namedParams: { cask: 'iterm2' },
|
||||
staticPreview: renderVersionBadge({ version: 'v3.2.5' }),
|
||||
},
|
||||
]
|
||||
}
|
||||
|
||||
static get defaultBadgeData() {
|
||||
return { label: 'homebrew cask' }
|
||||
}
|
||||
|
||||
async fetch({ cask }) {
|
||||
return this._requestJson({
|
||||
schema,
|
||||
url: `https://formulae.brew.sh/api/cask/${cask}.json`,
|
||||
})
|
||||
}
|
||||
|
||||
async handle({ cask }) {
|
||||
const data = await this.fetch({ cask })
|
||||
return renderVersionBadge({ version: data.version })
|
||||
}
|
||||
}
|
||||
24
services/homebrew/homebrew-cask.tester.js
Normal file
24
services/homebrew/homebrew-cask.tester.js
Normal file
@@ -0,0 +1,24 @@
|
||||
'use strict'
|
||||
|
||||
const { isVPlusTripleDottedVersion } = require('../test-validators')
|
||||
const t = (module.exports = require('../tester').createServiceTester())
|
||||
|
||||
t.create('homebrew cask (valid)')
|
||||
.get('/iterm2.json')
|
||||
.expectBadge({
|
||||
label: 'homebrew cask',
|
||||
message: isVPlusTripleDottedVersion,
|
||||
})
|
||||
|
||||
t.create('homebrew cask (valid)')
|
||||
.get('/iterm2.json')
|
||||
.intercept(nock =>
|
||||
nock('https://formulae.brew.sh')
|
||||
.get('/api/cask/iterm2.json')
|
||||
.reply(200, { version: '3.3.6' })
|
||||
)
|
||||
.expectBadge({ label: 'homebrew cask', message: 'v3.3.6' })
|
||||
|
||||
t.create('homebrew cask (not found)')
|
||||
.get('/not-a-package.json')
|
||||
.expectBadge({ label: 'homebrew cask', message: 'not found' })
|
||||
Reference in New Issue
Block a user