1
0
Fork 0
mirror of synced 2026-06-05 14:28:19 +00:00

chore: increase test coverage

This commit is contained in:
Tom Keller 2022-10-18 20:12:45 -07:00
commit 19a173d3ee
No known key found for this signature in database
GPG key ID: E1806C1EE1663B8D
2 changed files with 29 additions and 2 deletions

View file

@ -29,7 +29,7 @@ export function sanitizeGithubWorkflowName(name: string) {
const nameTruncated = nameWithoutSpecialCharacters.slice(0, MAX_TAG_VALUE_LENGTH);
return nameTruncated;
}
/* c8 ignore start */
export function errorMessage(error: unknown) {
return error instanceof Error ? error.message : String(error);
}
@ -37,8 +37,9 @@ export function errorMessage(error: unknown) {
export function isDefined<T>(i: T | undefined | null): i is T {
return i !== undefined && i !== null;
}
/* c8 ignore stop */
function defaultSleep(ms: number) {
export function defaultSleep(ms: number) {
return new Promise((resolve) => setTimeout(resolve, ms));
}
let sleep = defaultSleep;

26
test/helpers.test.ts Normal file
View file

@ -0,0 +1,26 @@
import * as helpers from '../src/helpers';
describe('helpers', () => {
beforeEach(() => {
jest.resetModules();
jest.clearAllMocks();
});
test('removes brackets from GitHub Actor', () => {
expect(helpers.sanitizeGithubActor('foo[bot]')).toEqual('foo_bot_');
});
test('removes special characters from worflow names', () => {
expect(helpers.sanitizeGithubWorkflowName('sdf234@#$%$^&*()_+{}|:"<>?')).toEqual('sdf234@__________+___:_<>?');
});
test('can sleep', async () => {
const sleep = helpers.defaultSleep(10);
await expect(Promise.race([sleep, new Promise((_res, rej) => setTimeout(rej, 20))])).resolves;
});
test("backoff function doesn't retry non-retryable errors", async () => {
const fn = jest.fn().mockRejectedValue('i am not retryable');
await expect(helpers.retryAndBackoff(fn, false)).rejects.toMatch('i am not retryable');
expect(fn).toHaveBeenCalledTimes(1);
});
});