ghaction-upx/__tests__/installer.test.ts

40 lines
1.3 KiB
TypeScript

import {describe, expect, it} from '@jest/globals';
import * as fs from 'fs';
import * as installer from '../src/installer';
describe('getRelease', () => {
it('returns latest UPX GitHub release', async () => {
const release = await installer.getRelease('latest');
expect(release).not.toBeNull();
expect(release?.tag_name).not.toEqual('');
});
it('returns v3.95 UPX GitHub release', async () => {
const release = await installer.getRelease('v3.95');
expect(release).not.toBeNull();
expect(release?.id).toEqual(12577195);
expect(release?.tag_name).toEqual('v3.95');
expect(release?.html_url).toEqual('https://github.com/upx/upx/releases/tag/v3.95');
});
it('unknown release', async () => {
await expect(installer.getRelease('foo')).rejects.toThrowError(
new Error(
'Cannot find UPX release foo in https://raw.githubusercontent.com/crazy-max/ghaction-upx/master/.github/upx-releases.json'
)
);
});
});
describe('installer', () => {
it('acquires v3.95 version of UPX', async () => {
const upx = await installer.getUPX('v3.95');
expect(fs.existsSync(upx)).toBe(true);
}, 100000);
it('acquires latest version of UPX', async () => {
const upx = await installer.getUPX('latest');
expect(fs.existsSync(upx)).toBe(true);
}, 100000);
});