fix: Anify timeout logic running even when fetch resolved
Summary: Test Plan:
This commit is contained in:
29
src/libs/promiseTimeout.spec.ts
Normal file
29
src/libs/promiseTimeout.spec.ts
Normal file
@@ -0,0 +1,29 @@
|
||||
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);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user