test: Write tests for release_data function

This commit is contained in:
Edmund Miller 2022-11-13 20:05:23 -06:00 committed by Thomas A. Christensen II
parent c19a8b88ef
commit 93ff0f7ef2
4 changed files with 40 additions and 18 deletions

View file

@ -39,6 +39,10 @@
"source": [ "source": [
"src/**/*.ts" "src/**/*.ts"
], ],
"files": [
"test/**/*.ts",
"!test/utils.ts"
],
"concurrency": 1, "concurrency": 1,
"serial": true, "serial": true,
"powerAssert": true "powerAssert": true

View file

@ -1,4 +1,5 @@
import * as functions from '../src/functions' import * as functions from '../src/functions'
import {getToken} from './utils'
import * as github from '@actions/github' import * as github from '@actions/github'
import anyTest, {TestFn} from 'ava' // eslint-disable-line import/no-unresolved import anyTest, {TestFn} from 'ava' // eslint-disable-line import/no-unresolved
@ -24,23 +25,5 @@ test('lastest_stable_release_data', async t => {
t.is(result['tag_name'], 'v22.10.2') t.is(result['tag_name'], 'v22.10.2')
}) })
test('release_data', async t => {
const result = await functions.release_data('v22.10.2', t.context['octokit'])
t.is(result['tag_name'], 'v22.10.2')
})
test.todo('nextflow_bin_url') test.todo('nextflow_bin_url')
test.todo('install_nextflow') test.todo('install_nextflow')
function getToken(first: boolean): string {
const token = process.env['GITHUB_TOKEN'] || ''
if (!token && first) {
/* eslint-disable-next-line no-console */
console.warn(
'Skipping GitHub tests. Set $GITHUB_TOKEN to run REST client and GraphQL client tests'
)
first = false
}
return token
}

23
test/releasedata.ts Normal file
View file

@ -0,0 +1,23 @@
import * as github from '@actions/github'
import {release_data} from '../src/functions'
import {getToken} from './utils'
import anyTest, {TestFn} from 'ava' // eslint-disable-line import/no-unresolved
const test = anyTest as TestFn<{foo: string}>
test.before(t => {
const first = true
const current_token = getToken(first)
t.context = {token: current_token}
t.context = {octokit: github.getOctokit(current_token)}
})
const macro = test.macro(async (t, version: string, expected: string) => {
const result = await release_data(version, t.context['octokit'])
t.is(result['tag_name'], expected)
})
test('hard version', macro, 'v22.10.2', 'v22.10.2')
test('latest-stable', macro, 'latest-stable', 'v22.10.2')
test('latest-edge', macro, 'latest-edge', 'v22.09.7-edge')
test('latest-everything', macro, 'latest-everything', 'v22.10.2')

12
test/utils.ts Normal file
View file

@ -0,0 +1,12 @@
export function getToken(first: boolean): string {
const token = process.env['GITHUB_TOKEN'] || ''
if (!token && first) {
/* eslint-disable-next-line no-console */
console.warn(
'Skipping GitHub tests. Set $GITHUB_TOKEN to run REST client and GraphQL client tests'
)
first = false
}
return token
}