2026-07-02 15:48:04 +08:00
|
|
|
import { describe, expect, it } from "vitest"
|
|
|
|
|
import {
|
|
|
|
|
DEFAULT_MODEL_VALIDATION_MAX_TOKENS,
|
|
|
|
|
MAX_MODEL_VALIDATION_MAX_TOKENS,
|
|
|
|
|
parseModelValidationMaxTokens,
|
|
|
|
|
resolveModelValidationMaxTokens,
|
|
|
|
|
} from "@/lib/model-validation"
|
|
|
|
|
|
|
|
|
|
describe("model validation token budget", () => {
|
|
|
|
|
it("defaults to a larger reasoning-friendly budget", () => {
|
2026-07-11 22:30:20 +09:00
|
|
|
expect(resolveModelValidationMaxTokens(undefined)).toBe(
|
2026-07-02 15:48:04 +08:00
|
|
|
DEFAULT_MODEL_VALIDATION_MAX_TOKENS,
|
|
|
|
|
)
|
|
|
|
|
})
|
|
|
|
|
|
2026-07-11 22:30:20 +09:00
|
|
|
it("parses valid env values", () => {
|
|
|
|
|
expect(resolveModelValidationMaxTokens("2000")).toBe(2000)
|
|
|
|
|
expect(resolveModelValidationMaxTokens(" 300 ")).toBe(300)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("falls back to the default on invalid values", () => {
|
|
|
|
|
expect(resolveModelValidationMaxTokens("abc")).toBe(
|
|
|
|
|
DEFAULT_MODEL_VALIDATION_MAX_TOKENS,
|
|
|
|
|
)
|
|
|
|
|
expect(resolveModelValidationMaxTokens("")).toBe(
|
|
|
|
|
DEFAULT_MODEL_VALIDATION_MAX_TOKENS,
|
|
|
|
|
)
|
2026-07-02 15:48:04 +08:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("rejects invalid values", () => {
|
|
|
|
|
expect(parseModelValidationMaxTokens(0)).toBeNull()
|
|
|
|
|
expect(parseModelValidationMaxTokens(-1)).toBeNull()
|
|
|
|
|
expect(parseModelValidationMaxTokens(1.5)).toBeNull()
|
|
|
|
|
expect(parseModelValidationMaxTokens("abc")).toBeNull()
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
it("caps very large values", () => {
|
|
|
|
|
expect(
|
|
|
|
|
resolveModelValidationMaxTokens(
|
|
|
|
|
MAX_MODEL_VALIDATION_MAX_TOKENS + 1,
|
|
|
|
|
),
|
|
|
|
|
).toBe(MAX_MODEL_VALIDATION_MAX_TOKENS)
|
|
|
|
|
})
|
|
|
|
|
})
|