Fixes #16 Add update specific omit inputs

This commit is contained in:
Nick Cipollo
2020-05-26 13:33:20 -04:00
parent 05b0499270
commit 6f236bd2ff
9 changed files with 226 additions and 85 deletions

View File

@@ -16,17 +16,19 @@ const artifacts = [
new Artifact('a/art1'),
new Artifact('b/art2')
]
const artifactData = Buffer.from('blob', 'utf-8')
const body = 'body'
const createBody = 'createBody'
const createName = 'createName'
const commit = 'commit'
const draft = true
const id = 100
const name = 'name'
const prerelease = true
const releaseId = 101
const replacesArtifacts = true
const tag = 'tag'
const token = 'token'
const updateBody = 'updateBody'
const updateName = 'updateName'
const url = 'http://api.example.com'
describe("Action", () => {
@@ -43,7 +45,7 @@ describe("Action", () => {
await action.perform()
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).not.toBeCalled()
})
@@ -54,7 +56,7 @@ describe("Action", () => {
await action.perform()
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -70,7 +72,7 @@ describe("Action", () => {
await action.perform()
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -80,7 +82,7 @@ describe("Action", () => {
await action.perform()
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -95,7 +97,7 @@ describe("Action", () => {
expect(error).toEqual("error")
}
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).not.toBeCalled()
})
@@ -136,7 +138,7 @@ describe("Action", () => {
expect(error).toEqual("error")
}
expect(updateMock).toBeCalledWith(id, tag, body, commit, draft, name, prerelease)
expect(updateMock).toBeCalledWith(id, tag, updateBody, commit, draft, updateName, prerelease)
expect(uploadMock).not.toBeCalled()
})
@@ -151,7 +153,7 @@ describe("Action", () => {
expect(error).toEqual("error")
}
expect(createMock).toBeCalledWith(tag, body, commit, draft, name, prerelease)
expect(createMock).toBeCalledWith(tag, createBody, commit, draft, createName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -168,7 +170,7 @@ describe("Action", () => {
await action.perform()
expect(updateMock).toBeCalledWith(id, tag, body, commit, draft, name, prerelease)
expect(updateMock).toBeCalledWith(id, tag, updateBody, commit, draft, updateName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -178,7 +180,7 @@ describe("Action", () => {
await action.perform()
expect(updateMock).toBeCalledWith(id, tag, body, commit, draft, name, prerelease)
expect(updateMock).toBeCalledWith(id, tag, updateBody, commit, draft, updateName, prerelease)
expect(uploadMock).not.toBeCalled()
})
@@ -188,7 +190,7 @@ describe("Action", () => {
await action.perform()
expect(updateMock).toBeCalledWith(id, tag, body, commit, draft, name, prerelease)
expect(updateMock).toBeCalledWith(id, tag, updateBody, commit, draft, updateName, prerelease)
expect(uploadMock).toBeCalledWith(artifacts, releaseId, url)
})
@@ -238,15 +240,16 @@ describe("Action", () => {
return {
allowUpdates: allowUpdates,
artifacts: inputArtifact,
body: body,
createdReleaseBody: createBody,
createdReleaseName: createName,
commit: commit,
draft: draft,
name: name,
prerelease: prerelease,
replacesArtifacts: replacesArtifacts,
tag: tag,
token: token,
readArtifact: () => artifactData
updatedReleaseBody: updateBody,
updatedReleaseName: updateName
}
})
const MockUploader = jest.fn<ArtifactUploader, any>(() => {
@@ -261,4 +264,4 @@ describe("Action", () => {
return new Action(inputs, releases, uploader)
}
})
})

View File

@@ -30,7 +30,6 @@ describe('ErrorMessage', () => {
})
it('generates message with errors', () => {
const resource = "release"
const error = {
message: 'something bad happened',
errors: [
@@ -68,4 +67,4 @@ describe('ErrorMessage', () => {
const errorMessage = new ErrorMessage(error)
expect(errorMessage.status).toBe(404)
})
})
})

View File

@@ -91,12 +91,12 @@ describe('Inputs', () => {
})
})
describe('body', () => {
describe('createdReleaseBody', () => {
it('returns input body', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('body')
expect(inputs.body).toBe('body')
expect(inputs.createdReleaseBody).toBe('body')
})
it('returns body file contents', () => {
@@ -106,7 +106,7 @@ describe('Inputs', () => {
.mockReturnValueOnce('a/path')
mockReadFileSync.mockReturnValue('file')
expect(inputs.body).toBe('file')
expect(inputs.createdReleaseBody).toBe('file')
})
it('returns empty', () => {
@@ -114,14 +114,38 @@ describe('Inputs', () => {
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
.mockReturnValueOnce('')
expect(inputs.body).toBe('')
expect(inputs.createdReleaseBody).toBe('')
})
it('returns null when omitted', () => {
it('returns undefined when omitted', () => {
mockGetInput
.mockReturnValueOnce('true')
.mockReturnValueOnce('body')
expect(inputs.body).toBeUndefined()
expect(inputs.createdReleaseBody).toBeUndefined()
})
})
describe('createdReleaseName', () => {
it('returns input name', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('name')
expect(inputs.createdReleaseName).toBe('name')
})
it('returns undefined when omitted', () => {
mockGetInput
.mockReturnValueOnce('true')
.mockReturnValueOnce('name')
expect(inputs.createdReleaseBody).toBeUndefined()
})
it('returns tag', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
context.ref = 'refs/tags/sha-tag'
expect(inputs.createdReleaseName).toBe('sha-tag')
})
})
@@ -136,30 +160,6 @@ describe('Inputs', () => {
})
})
describe('name', () => {
it('returns input name', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('name')
expect(inputs.name).toBe('name')
})
it('returns null when omitted', () => {
mockGetInput
.mockReturnValueOnce('true')
.mockReturnValueOnce('name')
expect(inputs.body).toBeUndefined()
})
it('returns tag', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
context.ref = 'refs/tags/sha-tag'
expect(inputs.name).toBe('sha-tag')
})
})
describe('prerelase', () => {
it('returns false', () => {
expect(inputs.prerelease).toBe(false)
@@ -202,6 +202,87 @@ describe('Inputs', () => {
})
})
describe('updatedReleaseBody', () => {
it('returns input body', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('false')
.mockReturnValueOnce('body')
expect(inputs.updatedReleaseBody).toBe('body')
})
it('returns body file contents', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
.mockReturnValueOnce('a/path')
mockReadFileSync.mockReturnValue('file')
expect(inputs.updatedReleaseBody).toBe('file')
})
it('returns empty', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
.mockReturnValueOnce('')
expect(inputs.updatedReleaseBody).toBe('')
})
it('returns undefined when omitted', () => {
mockGetInput
.mockReturnValueOnce('true')
.mockReturnValueOnce('false')
.mockReturnValueOnce('body')
expect(inputs.updatedReleaseBody).toBeUndefined()
})
it('returns undefined when omitted for update', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('true')
.mockReturnValueOnce('body')
expect(inputs.updatedReleaseBody).toBeUndefined()
})
})
describe('updatedReleaseName', () => {
it('returns input name', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('false')
.mockReturnValueOnce('name')
expect(inputs.updatedReleaseName).toBe('name')
})
it('returns undefined when omitted', () => {
mockGetInput
.mockReturnValueOnce('true')
.mockReturnValueOnce('false')
.mockReturnValueOnce('name')
expect(inputs.updatedReleaseName).toBeUndefined()
})
it('returns undefined when omitted for update', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('true')
.mockReturnValueOnce('name')
expect(inputs.updatedReleaseName).toBeUndefined()
})
it('returns tag', () => {
mockGetInput
.mockReturnValueOnce('false')
.mockReturnValueOnce('false')
.mockReturnValueOnce('')
context.ref = 'refs/tags/sha-tag'
expect(inputs.updatedReleaseName).toBe('sha-tag')
})
})
function createGlobber(): ArtifactGlobber {
const MockGlobber = jest.fn<ArtifactGlobber, any>(() => {
return {