publish-action/__tests__/api-utils.test.ts
HarithaVattikuti f784495ce7
Node version upgrade to 20 (#38)
* Node version update to 20

* 1.0.0

* Run Format check

* Formatted changes

* Update package.json

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>

* Update api-utils.ts

---------

Co-authored-by: MaksimZhukov <46996400+MaksimZhukov@users.noreply.github.com>
2023-12-07 13:11:08 +01:00

44 lines
1.2 KiB
TypeScript

import * as github from '@actions/github';
import * as apiUtils from '../src/api-utils';
import prereleaseData from './data/pre-release.json';
import releaseData from './data/release.json';
const token = 'faketoken';
const octokitClient = github.getOctokit(token);
let getReleaseSpy: jest.SpyInstance;
process.env.GITHUB_REPOSITORY = 'test/repository';
describe('validateIfReleaseIsPublished', () => {
beforeEach(() => {
getReleaseSpy = jest.spyOn(octokitClient.rest.repos, 'getReleaseByTag');
});
it('throw if release is marked as pre-release', async () => {
getReleaseSpy.mockReturnValue(prereleaseData);
expect.assertions(1);
await expect(
apiUtils.validateIfReleaseIsPublished('v1.0.0', octokitClient)
).rejects.toThrow(
"The 'v1.0.0' release is marked as pre-release. Updating tags for pre-release is not supported"
);
});
it('validate that release is published', async () => {
getReleaseSpy.mockReturnValue(releaseData);
expect.assertions(1);
await expect(
apiUtils.validateIfReleaseIsPublished('v1.1.0', octokitClient)
).resolves.not.toThrow();
});
afterEach(() => {
jest.resetAllMocks();
jest.clearAllMocks();
});
});