Add input tests

This commit is contained in:
Nick Cipollo
2019-08-26 13:55:21 -04:00
parent 488aa36d03
commit e14d7835e1
3 changed files with 37 additions and 17 deletions

View File

@@ -5,19 +5,39 @@ import { Context } from "@actions/github/lib/context";
jest.mock('@actions/core', () => {
return {getInput: mockGetInput};
return { getInput: mockGetInput };
});
describe('Inputs', () => {
let context: Context
let inputs: Inputs
let context: Context;
let inputs: Inputs;
beforeEach(() => {
context = new Context()
inputs = new Inputs(context)
mockGetInput.mockReturnValue("")
})
it('returns token', () => {
it('token method returns input token', () => {
mockGetInput.mockReturnValue("42")
expect(inputs.token).toBe("42")
})
describe('tag', () => {
it('tag property returns input tag', () => {
mockGetInput.mockReturnValue("tag")
expect(inputs.tag).toBe("tag")
})
it('tag property returns context sha when input is empty', () => {
mockGetInput.mockReturnValue("")
context.ref = "refs/tags/sha-tag"
expect(inputs.tag).toBe("sha-tag")
})
it('tag property returns context sha when input is null', () => {
mockGetInput.mockReturnValue(null)
context.ref = "refs/tags/sha-tag"
expect(inputs.tag).toBe("sha-tag")
})
it('tag property throws if no tag', () => {
expect(() => inputs.tag).toThrow()
})
})
})

View File

@@ -5,23 +5,23 @@ export class Inputs {
private context: Context
constructor(context: Context) {
this.context = context;
this.context = context
}
get token(): string {
return core.getInput('token', {required: true});
return core.getInput('token', {required: true})
}
get tag() : string {
const tag = core.getInput('tag');
if(tag != null) {
const tag = core.getInput('tag')
if(tag) {
return tag;
}
const ref = this.context.ref;
const tagPath = "refs/tags/";
if(ref.startsWith(tagPath)) {
return ref.substr(0, tagPath.length);
const ref = this.context.ref
const tagPath = "refs/tags/"
if(ref && ref.startsWith(tagPath)) {
return ref.substr(tagPath.length, ref.length)
}
throw Error("No tag found in ref or input!")

View File

@@ -3,12 +3,12 @@ import { GitHub } from "@actions/github";
import { Response, ReposCreateReleaseResponse } from "@octokit/rest";
export class Releases {
context: Context;
git: GitHub;
context: Context
git: GitHub
constructor(context: Context, git: GitHub) {
this.context = context;
this.git = git;
this.context = context
this.git = git
}
async create(tag: string, commitHash?: string): Promise<Response<ReposCreateReleaseResponse>> {