mirror of
https://github.com/actions/publish-action.git
synced 2025-02-24 16:22:31 +00:00
* 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>
44 lines
1.2 KiB
TypeScript
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();
|
|
});
|
|
});
|