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 );
});
});
Messung V0.5 in Prozent C=96 H=99 G=97
¤ Dauer der Verarbeitung: 0.3 Sekunden
¤
*© Formatika GbR, Deutschland