* move getLatestRelease logic from [GitHubRelease] to common-fetch - so that the sorting and prerelease logic can be used for other services too, like commits-since * add sort and prerelease query params to [GitHubCommitsSince] - they only work when using the 'latest' version of course - uses same logic as release service * reuse queryParamSchema from common-fetch for [GitHubTag] - as they were the exact same schema * refactor [GitHubCommitsSince] tests to use withRegex - and the same variable everywhere * split out release/tag logic from common-fetch to common-release (affects [GitHubCommitsSince], [GitHubRelease], [GitHubTag]) - this logic is only used for code related to releases & tags, so made sense as a split point Co-authored-by: Caleb Cartwright <calebcartwright@users.noreply.github.com>
66 lines
1.7 KiB
JavaScript
66 lines
1.7 KiB
JavaScript
'use strict'
|
|
|
|
const { withRegex, isMetric } = require('../test-validators')
|
|
const t = (module.exports = require('../tester').createServiceTester())
|
|
|
|
const isCommitsSince = withRegex(/^(commits since){1}[\s\S]+$/)
|
|
|
|
t.create('Commits since')
|
|
.get('/badges/shields/a0663d8da53fb712472c02665e6ff7547ba945b7.json')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
color: 'blue',
|
|
})
|
|
|
|
t.create('Commits since (branch)')
|
|
.get('/badges/shields/60be4859585650e8c2b87669e3a39d98ca084e98/gh-pages.json')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
})
|
|
|
|
t.create('Commits since by latest release')
|
|
.get('/microsoft/typescript/latest.json')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
})
|
|
|
|
t.create('Commits since by latest release (branch)')
|
|
.get('/microsoft/typescript/latest/master.json')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
})
|
|
|
|
t.create('Commits since by latest SemVer release')
|
|
.get('/microsoft/typescript/latest.json?sort=semver')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
})
|
|
|
|
t.create('Commits since by latest pre-release')
|
|
.get('/microsoft/typescript/latest/master.json?include_prereleases')
|
|
.expectBadge({
|
|
label: isCommitsSince,
|
|
message: isMetric,
|
|
})
|
|
|
|
t.create('Commits since (version not found)')
|
|
.get('/badges/shields/not-a-version.json')
|
|
.expectBadge({
|
|
label: 'github',
|
|
message: 'repo or version not found',
|
|
})
|
|
|
|
t.create('Commits since (branch not found)')
|
|
.get(
|
|
'/badges/shields/a0663d8da53fb712472c02665e6ff7547ba945b7/not-a-branch.json'
|
|
)
|
|
.expectBadge({
|
|
label: 'github',
|
|
message: 'repo, branch or version not found',
|
|
})
|