mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-15 11:11:09 +00:00
71 lines
1.8 KiB
TypeScript
71 lines
1.8 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import { resolveQaLiveTurnTimeoutMs } from "./live-timeout.js";
|
|
|
|
describe("qa live timeout policy", () => {
|
|
it("keeps mock lanes on the caller fallback", () => {
|
|
expect(
|
|
resolveQaLiveTurnTimeoutMs(
|
|
{
|
|
providerMode: "mock-openai",
|
|
primaryModel: "anthropic/claude-sonnet-4-6",
|
|
alternateModel: "anthropic/claude-opus-4-6",
|
|
},
|
|
30_000,
|
|
),
|
|
).toBe(30_000);
|
|
});
|
|
|
|
it("uses the higher gpt-5 live floor for openai heavy turns", () => {
|
|
expect(
|
|
resolveQaLiveTurnTimeoutMs(
|
|
{
|
|
providerMode: "live-frontier",
|
|
primaryModel: "openai/gpt-5.4",
|
|
alternateModel: "openai/gpt-5.4",
|
|
},
|
|
30_000,
|
|
),
|
|
).toBe(360_000);
|
|
});
|
|
|
|
it("keeps the standard live floor for other non-anthropic models", () => {
|
|
expect(
|
|
resolveQaLiveTurnTimeoutMs(
|
|
{
|
|
providerMode: "live-frontier",
|
|
primaryModel: "google/gemini-3-flash",
|
|
alternateModel: "google/gemini-3-flash",
|
|
},
|
|
30_000,
|
|
),
|
|
).toBe(120_000);
|
|
});
|
|
|
|
it("uses the anthropic floor for sonnet turns", () => {
|
|
expect(
|
|
resolveQaLiveTurnTimeoutMs(
|
|
{
|
|
providerMode: "live-frontier",
|
|
primaryModel: "anthropic/claude-sonnet-4-6",
|
|
alternateModel: "anthropic/claude-opus-4-6",
|
|
},
|
|
30_000,
|
|
),
|
|
).toBe(180_000);
|
|
});
|
|
|
|
it("uses the opus floor when the switched turn runs on claude opus", () => {
|
|
expect(
|
|
resolveQaLiveTurnTimeoutMs(
|
|
{
|
|
providerMode: "live-frontier",
|
|
primaryModel: "anthropic/claude-sonnet-4-6",
|
|
alternateModel: "anthropic/claude-opus-4-6",
|
|
},
|
|
30_000,
|
|
"anthropic/claude-opus-4-6",
|
|
),
|
|
).toBe(240_000);
|
|
});
|
|
});
|