diff --git a/__tests__/Inputs.test.ts b/__tests__/Inputs.test.ts index e7bc3a3..9a942e4 100644 --- a/__tests__/Inputs.test.ts +++ b/__tests__/Inputs.test.ts @@ -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() + }) + }) }) \ No newline at end of file diff --git a/src/Inputs.ts b/src/Inputs.ts index 1bbb202..c3534b4 100644 --- a/src/Inputs.ts +++ b/src/Inputs.ts @@ -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!") diff --git a/src/Releases.ts b/src/Releases.ts index a453b73..1fdfef6 100644 --- a/src/Releases.ts +++ b/src/Releases.ts @@ -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> {