Files
shields/services/github/github-release.spec.js
chris48s 5168675d0d move [githubtag] and [githubrelease] under /v, move variants to query params (#3610)
* move GH tag and release under /v, move variants to query params
    - move github /tag and /release under /v
    - both sort by date as default
    - specify sort=date/semver, include_prereleases as query params
    - use graphql api for tags

* pass string params from example defs to modal
2019-08-17 22:16:41 +01:00

48 lines
1.5 KiB
JavaScript

'use strict'
const { test, given } = require('sazerac')
const { GithubRelease } = require('./github-release.service')
describe('GithubRelease', function() {
test(GithubRelease.getLatestRelease, () => {
const releaseFixture = [
{ tag_name: 'cheese', prerelease: false }, // any old string
{ tag_name: 'v1.2', prerelease: false }, // semver release
{ tag_name: 'v1.3-beta3', prerelease: true }, // semver pre-release
]
given({
releases: releaseFixture,
sort: 'semver',
includePrereleases: true,
}).expect({ tag_name: 'v1.3-beta3', prerelease: true })
given({
releases: releaseFixture,
sort: 'semver',
includePrereleases: false,
}).expect({ tag_name: 'v1.2', prerelease: false })
given({
releases: releaseFixture,
sort: 'date',
includePrereleases: true,
}).expect({ tag_name: 'cheese', prerelease: false })
given({
releases: releaseFixture,
sort: 'date',
includePrereleases: false,
}).expect({ tag_name: 'cheese', prerelease: false })
// if there are only pre-releases to choose from
// return a pre-release anyway in preference to nothing
given({
releases: [{ tag_name: '1.2.0-beta', prerelease: true }],
sort: 'semver',
includePrereleases: false,
}).expect({ tag_name: '1.2.0-beta', prerelease: true })
given({
releases: [{ tag_name: '1.2.0-beta', prerelease: true }],
sort: 'date',
includePrereleases: false,
}).expect({ tag_name: '1.2.0-beta', prerelease: true })
})
})