publish-action/__tests__/api-utils.test.ts
Ivan 9169aa7609
Add and configure ESLint and update configuration for Prettier (#26)
* Add ESLint and Prettier

* Rebuild action

* Update package.json

* Update licenses

* Fix review points
2023-03-08 09:50:45 +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.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();
});
});