46 lines
1.6 KiB
TypeScript
46 lines
1.6 KiB
TypeScript
import { ReleaseActionSkipper } from "../src/ActionSkipper"
|
|
import type { Releases } from "../src/Releases"
|
|
|
|
describe("shouldSkip", () => {
|
|
const getMock = jest.fn()
|
|
const tag = "tag"
|
|
const MockReleases = jest.fn<Releases, any>(() => {
|
|
return {
|
|
create: jest.fn(),
|
|
deleteArtifact: jest.fn(),
|
|
getByTag: getMock,
|
|
listArtifactsForRelease: jest.fn(),
|
|
listReleases: jest.fn(),
|
|
update: jest.fn(),
|
|
uploadArtifact: jest.fn(),
|
|
generateReleaseNotes: jest.fn(),
|
|
}
|
|
})
|
|
|
|
it("should return false when skipIfReleaseExists is false", async () => {
|
|
const actionSkipper = new ReleaseActionSkipper(false, MockReleases(), tag)
|
|
expect(await actionSkipper.shouldSkip()).toBe(false)
|
|
})
|
|
|
|
it("should return false when error occurs", async () => {
|
|
getMock.mockRejectedValue(new Error())
|
|
|
|
const actionSkipper = new ReleaseActionSkipper(true, MockReleases(), tag)
|
|
expect(await actionSkipper.shouldSkip()).toBe(false)
|
|
})
|
|
|
|
it("should return false when release does not exist", async () => {
|
|
getMock.mockResolvedValue({})
|
|
|
|
const actionSkipper = new ReleaseActionSkipper(true, MockReleases(), tag)
|
|
expect(await actionSkipper.shouldSkip()).toBe(false)
|
|
})
|
|
|
|
it("should return true when release does exist", async () => {
|
|
getMock.mockResolvedValue({ data: {} })
|
|
|
|
const actionSkipper = new ReleaseActionSkipper(true, MockReleases(), tag)
|
|
expect(await actionSkipper.shouldSkip()).toBe(true)
|
|
})
|
|
})
|