@evil-gauss/core
Version:
evil core library
30 lines • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const try_until_success_function_1 = require("./try-until-success.function");
const date_constant_1 = require("../../constants/date.constant");
const sleep_function_1 = require("./sleep.function");
jest.setTimeout(date_constant_1.defaultJestWaitingTime);
test('tryUntilSuccess', async () => {
const resolveTimeoutMs = 1000;
const logicNoError = async () => {
// eslint-disable-next-line no-promise-executor-return
return new Promise(resolve => setTimeout(resolve, resolveTimeoutMs));
};
const onError = () => {
return async () => {
await (0, sleep_function_1.sleep)(resolveTimeoutMs);
// eslint-disable-next-line prefer-promise-reject-errors
return Promise.reject('foo');
};
};
let start = Date.now();
await expect((0, try_until_success_function_1.tryUntilSuccess)(() => logicNoError(), onError())).resolves.not.toThrow();
expect(Date.now() - start).toBeGreaterThanOrEqual(resolveTimeoutMs);
const logicError = async () => {
throw new Error();
};
start = Date.now();
await expect((0, try_until_success_function_1.tryUntilSuccess)(() => logicError(), onError())).rejects.toEqual('foo');
expect(Date.now() - start).toBeGreaterThanOrEqual(resolveTimeoutMs);
});
//# sourceMappingURL=try-until-success.function.test.js.map