Files
aniplay-api/src/libs/promiseTimeout.spec.ts

30 lines
688 B
TypeScript

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