1
0
mirror of https://github.com/badges/shields.git synced 2025-04-18 19:44:04 +03:00
shields/services/gitlab/gitlab-release.tester.js

50 lines
2.0 KiB
JavaScript

import { isSemver, withRegex } from '../test-validators.js'
import { createServiceTester } from '../tester.js'
export const t = await createServiceTester()
const isGitLabDisplayVersion = withRegex(/^GitLab [1-9][0-9]*.[0-9]*/)
t.create('Release (latest by date)')
.get('/shields-ops-group/tag-test.json')
.expectBadge({ label: 'release', message: 'v2.0.0', color: 'blue' })
t.create('Release (nested groups latest by date)')
.get('/gitlab-org/frontend/eslint-plugin.json')
.expectBadge({ label: 'release', message: isSemver, color: 'blue' })
t.create('Release (latest by date, order by created_at)')
.get('/shields-ops-group/tag-test.json?date_order_by=created_at')
.expectBadge({ label: 'release', message: 'v2.0.0', color: 'blue' })
t.create('Release (latest by date, order by released_at)')
.get('/shields-ops-group/tag-test.json?date_order_by=released_at')
.expectBadge({ label: 'release', message: 'v2.0.0', color: 'blue' })
t.create('Release (project id latest by date)')
.get('/29538796.json')
.expectBadge({ label: 'release', message: 'v2.0.0', color: 'blue' })
t.create('Release (latest by semver)')
.get('/shields-ops-group/tag-test.json?sort=semver')
.expectBadge({ label: 'release', message: 'v4.0.0', color: 'blue' })
t.create('Release (latest by semver pre-release)')
.get('/shields-ops-group/tag-test.json?sort=semver&include_prereleases')
.expectBadge({ label: 'release', message: 'v5.0.0-beta.1', color: 'orange' })
t.create('Release (release display name)')
.get('/gitlab-org/gitlab.json?display_name=release')
.expectBadge({ label: 'release', message: isGitLabDisplayVersion })
t.create('Release (custom instance)')
.get('/GNOME/librsvg.json?gitlab_url=https://gitlab.gnome.org')
.expectBadge({ label: 'release', message: isSemver, color: 'blue' })
t.create('Release (project not found)')
.get('/fdroid/nonexistant.json')
.expectBadge({ label: 'release', message: 'project not found' })
t.create('Release (no tags)')
.get('/fdroid/fdroiddata.json')
.expectBadge({ label: 'release', message: 'no releases found' })