Throw explicit error if list releases reponse doesn't have data
This commit is contained in:
@@ -218,6 +218,32 @@ describe("Action", () => {
|
|||||||
|
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('throws error when list has no data', async () => {
|
||||||
|
|
||||||
|
const action = createAction(true, true)
|
||||||
|
getMock.mockRejectedValue({status: 404})
|
||||||
|
const error = {
|
||||||
|
errors: [
|
||||||
|
{
|
||||||
|
code: 'already_exists'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
createMock.mockRejectedValue(error)
|
||||||
|
listMock.mockResolvedValue({})
|
||||||
|
expect.hasAssertions()
|
||||||
|
try {
|
||||||
|
await action.perform()
|
||||||
|
} catch (error) {
|
||||||
|
expect(error).toEqual(Error("No releases found. Response: {}"))
|
||||||
|
}
|
||||||
|
|
||||||
|
expect(listMock).toBeCalled()
|
||||||
|
expect(createMock).not.toBeCalled()
|
||||||
|
expect(updateMock).not.toBeCalled()
|
||||||
|
})
|
||||||
|
|
||||||
it('throws error when update fails', async () => {
|
it('throws error when update fails', async () => {
|
||||||
const action = createAction(true, true)
|
const action = createAction(true, true)
|
||||||
|
|
||||||
@@ -428,7 +454,7 @@ describe("Action", () => {
|
|||||||
destroyArtifacts: artifactDestroyMock
|
destroyArtifacts: artifactDestroyMock
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const MockActionSkipper = jest.fn<ActionSkipper, any>(() => {
|
const MockActionSkipper = jest.fn<ActionSkipper, any>(() => {
|
||||||
return {
|
return {
|
||||||
shouldSkip: shouldSkipMock
|
shouldSkip: shouldSkipMock
|
||||||
|
|||||||
3
dist/index.js
vendored
3
dist/index.js
vendored
@@ -124,6 +124,9 @@ class Action {
|
|||||||
const tag = this.inputs.tag;
|
const tag = this.inputs.tag;
|
||||||
const response = await this.releases.listReleases();
|
const response = await this.releases.listReleases();
|
||||||
const releases = response.data;
|
const releases = response.data;
|
||||||
|
if (!releases) {
|
||||||
|
throw new Error(`No releases found. Response: ${JSON.stringify(response)}`);
|
||||||
|
}
|
||||||
const draftRelease = releases.find(release => release.draft && release.tag_name == tag);
|
const draftRelease = releases.find(release => release.draft && release.tag_name == tag);
|
||||||
return draftRelease?.id;
|
return draftRelease?.id;
|
||||||
}
|
}
|
||||||
|
|||||||
2
dist/index.js.map
vendored
2
dist/index.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -120,6 +120,10 @@ export class Action {
|
|||||||
const tag = this.inputs.tag
|
const tag = this.inputs.tag
|
||||||
const response = await this.releases.listReleases()
|
const response = await this.releases.listReleases()
|
||||||
const releases = response.data
|
const releases = response.data
|
||||||
|
if(!releases) {
|
||||||
|
throw new Error(`No releases found. Response: ${JSON.stringify(response)}`)
|
||||||
|
}
|
||||||
|
|
||||||
const draftRelease = releases.find(release => release.draft && release.tag_name == tag)
|
const draftRelease = releases.find(release => release.draft && release.tag_name == tag)
|
||||||
|
|
||||||
return draftRelease?.id
|
return draftRelease?.id
|
||||||
|
|||||||
Reference in New Issue
Block a user