Fresh history cut from cynarAI/evoo antigravity-handoff/project-timeline (Voice First + project timeline). Brand docs/titles as evOo; keep @rakazo/* packages as tech debt. Excludes node_modules, caches, secrets, voice blobs.
32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
boundedSandboxCommandTimeoutMs,
|
|
DEFAULT_SANDBOX_COMMAND_TIMEOUT_MS,
|
|
MAX_SANDBOX_COMMAND_TIMEOUT_MS,
|
|
sandboxCommandTimeoutMs,
|
|
} from "./sandbox-command.js";
|
|
|
|
describe("sandbox command timeout", () => {
|
|
it("uses a safe default and accepts a bounded deployment override", () => {
|
|
expect(sandboxCommandTimeoutMs({})).toBe(DEFAULT_SANDBOX_COMMAND_TIMEOUT_MS);
|
|
expect(sandboxCommandTimeoutMs({ SANDBOX_COMMAND_TIMEOUT_MS: "120000" })).toBe(120_000);
|
|
expect(sandboxCommandTimeoutMs({ SANDBOX_COMMAND_TIMEOUT_MS: "invalid" })).toBe(
|
|
DEFAULT_SANDBOX_COMMAND_TIMEOUT_MS,
|
|
);
|
|
expect(
|
|
sandboxCommandTimeoutMs({
|
|
SANDBOX_COMMAND_TIMEOUT_MS: String(MAX_SANDBOX_COMMAND_TIMEOUT_MS + 1),
|
|
}),
|
|
).toBe(DEFAULT_SANDBOX_COMMAND_TIMEOUT_MS);
|
|
});
|
|
|
|
it("honors bounded per-command timeouts and rejects invalid values", () => {
|
|
expect(boundedSandboxCommandTimeoutMs(25, 100)).toBe(25);
|
|
expect(boundedSandboxCommandTimeoutMs(0, 100)).toBe(100);
|
|
expect(boundedSandboxCommandTimeoutMs(Number.NaN, 100)).toBe(100);
|
|
expect(boundedSandboxCommandTimeoutMs(undefined, Number.POSITIVE_INFINITY)).toBe(
|
|
DEFAULT_SANDBOX_COMMAND_TIMEOUT_MS,
|
|
);
|
|
});
|
|
});
|