Files
Moltbot/src/browser/cdp-timeouts.test.ts

70 lines
1.9 KiB
TypeScript

import { describe, expect, it } from "vitest";
import {
PROFILE_HTTP_REACHABILITY_TIMEOUT_MS,
PROFILE_WS_REACHABILITY_MAX_TIMEOUT_MS,
PROFILE_WS_REACHABILITY_MIN_TIMEOUT_MS,
resolveCdpReachabilityTimeouts,
} from "./cdp-timeouts.js";
describe("resolveCdpReachabilityTimeouts", () => {
it("uses loopback defaults when timeout is omitted", () => {
expect(
resolveCdpReachabilityTimeouts({
profileIsLoopback: true,
timeoutMs: undefined,
remoteHttpTimeoutMs: 1500,
remoteHandshakeTimeoutMs: 3000,
}),
).toEqual({
httpTimeoutMs: PROFILE_HTTP_REACHABILITY_TIMEOUT_MS,
wsTimeoutMs: PROFILE_HTTP_REACHABILITY_TIMEOUT_MS * 2,
});
});
it("clamps loopback websocket timeout range", () => {
const low = resolveCdpReachabilityTimeouts({
profileIsLoopback: true,
timeoutMs: 1,
remoteHttpTimeoutMs: 1500,
remoteHandshakeTimeoutMs: 3000,
});
const high = resolveCdpReachabilityTimeouts({
profileIsLoopback: true,
timeoutMs: 5000,
remoteHttpTimeoutMs: 1500,
remoteHandshakeTimeoutMs: 3000,
});
expect(low.wsTimeoutMs).toBe(PROFILE_WS_REACHABILITY_MIN_TIMEOUT_MS);
expect(high.wsTimeoutMs).toBe(PROFILE_WS_REACHABILITY_MAX_TIMEOUT_MS);
});
it("enforces remote minimums even when caller passes lower timeout", () => {
expect(
resolveCdpReachabilityTimeouts({
profileIsLoopback: false,
timeoutMs: 200,
remoteHttpTimeoutMs: 1500,
remoteHandshakeTimeoutMs: 3000,
}),
).toEqual({
httpTimeoutMs: 1500,
wsTimeoutMs: 3000,
});
});
it("uses remote defaults when timeout is omitted", () => {
expect(
resolveCdpReachabilityTimeouts({
profileIsLoopback: false,
timeoutMs: undefined,
remoteHttpTimeoutMs: 1750,
remoteHandshakeTimeoutMs: 3250,
}),
).toEqual({
httpTimeoutMs: 1750,
wsTimeoutMs: 3250,
});
});
});