1
0
mirror of synced 2025-12-31 06:02:42 -05:00
Files
docs/tests/unit/ghae-versioning.js
Sarah Schneider b7f48ea2c1 Support GHAE internal-only semantic versioning (#29178)
Co-authored-by: Peter Bengtsson <mail@peterbe.com>
Co-authored-by: Matt Pollard <mattpollard@users.noreply.github.com>
2022-09-22 08:26:58 +02:00

96 lines
2.4 KiB
JavaScript

import { allVersions } from '../../lib/all-versions.js'
import { liquid } from '../../lib/render-content/index.js'
import getApplicableVersions from '../../lib/get-applicable-versions.js'
import shortVersionsMiddleware from '../../middleware/contextualizers/short-versions.js'
// These tests check the `internalLatestRelease` prop set on GHAE in lib/all-versions.js.
// It will be incremented over time but will always be >3.2, so the tests should be evergreen.
describe('Versions frontmatter', () => {
test('wildcard', async () => {
const versions = {
fpt: '*',
ghae: '*',
}
const applicableVersions = getApplicableVersions(versions)
expect(applicableVersions.includes('github-ae@latest')).toBe(true)
})
test('greater than', async () => {
const versions = {
fpt: '*',
ghae: '>3.2',
}
const applicableVersions = getApplicableVersions(versions)
expect(applicableVersions.includes('github-ae@latest')).toBe(true)
})
test('less than', async () => {
const versions = {
fpt: '*',
ghae: '<3.2',
}
const applicableVersions = getApplicableVersions(versions)
expect(applicableVersions.includes('github-ae@latest')).toBe(false)
})
})
describe('ifversion conditionals', () => {
const req = {}
beforeAll(async () => {
req.context = {
allVersions,
currentVersion: 'github-ae@latest',
}
await shortVersionsMiddleware(req, null, () => {})
})
test('greater than', async () => {
const template = `
{% ifversion ghae > 3.2 %}
FOO
{% else %}
BAR
{% endif %}
`
const output = await liquid.parseAndRender(template, req.context)
expect(output.trim()).toBe('FOO')
})
test('less than', async () => {
const template = `
{% ifversion ghae < 3.2 %}
FOO
{% else %}
BAR
{% endif %}
`
const output = await liquid.parseAndRender(template, req.context)
expect(output.trim()).toBe('BAR')
})
test('Equal', async () => {
const template = `
{% ifversion ghae %}
FOO
{% else %}
BAR
{% endif %}
`
const output = await liquid.parseAndRender(template, req.context)
expect(output.trim()).toBe('FOO')
})
test('Not', async () => {
const template = `
{% ifversion not ghae %}
FOO
{% else %}
BAR
{% endif %}
`
const output = await liquid.parseAndRender(template, req.context)
expect(output.trim()).toBe('BAR')
})
})