Files
aniplay-api/src/libs/promiseTimeout.spec.ts
2024-05-26 13:22:03 -04:00

30 lines
665 B
TypeScript

import { describe, expect, it } from "bun:test";
import { PromiseTimedOutError, promiseTimeout } from "./promiseTimeout";
describe("promiseTimeout", () => {
it("promise resolves within timeout, returns value", () => {
expect(
promiseTimeout(
wait(1).then(() => 2),
2,
),
).resolves.toBe(2);
});
it("promise does not resolve within timeout, throws PromiseTimedOutError", () => {
expect(
promiseTimeout(
wait(2).then(() => 2),
1,
),
).rejects.toThrow(PromiseTimedOutError);
});
});
function wait(ms: number) {
return new Promise((resolve) => {
setTimeout(resolve, ms);
});
}