mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-20 00:11:18 +00:00
81 lines
2 KiB
TypeScript
81 lines
2 KiB
TypeScript
import { DEFAULT_THINKING_MODEL_MAX_TOKENS, getMaxTokensForModel } from "@/utils/model-utils"
|
|
|
|
describe("getMaxTokensForModel utility from model-utils", () => {
|
|
test("should return maxTokens from modelInfo when thinking is false", () => {
|
|
const modelInfo = {
|
|
maxTokens: 2048,
|
|
thinking: false,
|
|
}
|
|
|
|
const apiConfig = {
|
|
modelMaxTokens: 4096,
|
|
}
|
|
|
|
const result = getMaxTokensForModel(modelInfo, apiConfig)
|
|
expect(result).toBe(2048)
|
|
})
|
|
|
|
test("should return modelMaxTokens from apiConfig when thinking is true", () => {
|
|
const modelInfo = {
|
|
maxTokens: 2048,
|
|
thinking: true,
|
|
}
|
|
|
|
const apiConfig = {
|
|
modelMaxTokens: 4096,
|
|
}
|
|
|
|
const result = getMaxTokensForModel(modelInfo, apiConfig)
|
|
expect(result).toBe(4096)
|
|
})
|
|
|
|
test("should fallback to DEFAULT_THINKING_MODEL_MAX_TOKENS when thinking is true but apiConfig.modelMaxTokens is not defined", () => {
|
|
const modelInfo = {
|
|
maxTokens: 2048,
|
|
thinking: true,
|
|
}
|
|
|
|
const apiConfig = {}
|
|
|
|
const result = getMaxTokensForModel(modelInfo, apiConfig)
|
|
expect(result).toBe(DEFAULT_THINKING_MODEL_MAX_TOKENS)
|
|
})
|
|
|
|
test("should handle undefined inputs gracefully", () => {
|
|
// Both undefined
|
|
expect(getMaxTokensForModel(undefined, undefined)).toBeUndefined()
|
|
|
|
// Only modelInfo defined
|
|
const modelInfoOnly = {
|
|
maxTokens: 2048,
|
|
thinking: false,
|
|
}
|
|
expect(getMaxTokensForModel(modelInfoOnly, undefined)).toBe(2048)
|
|
|
|
// Only apiConfig defined
|
|
const apiConfigOnly = {
|
|
modelMaxTokens: 4096,
|
|
}
|
|
expect(getMaxTokensForModel(undefined, apiConfigOnly)).toBeUndefined()
|
|
})
|
|
|
|
test("should handle missing properties gracefully", () => {
|
|
// modelInfo without maxTokens
|
|
const modelInfoWithoutMaxTokens = {
|
|
thinking: true,
|
|
}
|
|
|
|
const apiConfig = {
|
|
modelMaxTokens: 4096,
|
|
}
|
|
|
|
expect(getMaxTokensForModel(modelInfoWithoutMaxTokens, apiConfig)).toBe(4096)
|
|
|
|
// modelInfo without thinking flag
|
|
const modelInfoWithoutThinking = {
|
|
maxTokens: 2048,
|
|
}
|
|
|
|
expect(getMaxTokensForModel(modelInfoWithoutThinking, apiConfig)).toBe(2048)
|
|
})
|
|
})
|