internal/config/use_max_completion_tokens_test.go
Rama main · réplica de lectura del repositorio original.
package config
import (
"encoding/json"
"testing"
"gopkg.in/yaml.v3"
)
func TestOpenAICompatibilityUseMaxCompletionTokensYAMLDecoding(t *testing.T) {
const yamlConfig = `
openai-compatibility:
- name: test-provider
models:
- name: new-reasoning-model
alias: new-alias
use-max-completion-tokens: true
- name: legacy-model
alias: legacy-alias
`
var cfg Config
if errDecode := yaml.Unmarshal([]byte(yamlConfig), &cfg); errDecode != nil {
t.Fatalf("yaml decode error: %v", errDecode)
}
if len(cfg.OpenAICompatibility) != 1 {
t.Fatalf("OpenAICompatibility len = %d, want 1", len(cfg.OpenAICompatibility))
}
models := cfg.OpenAICompatibility[0].Models
if len(models) != 2 {
t.Fatalf("models len = %d, want 2", len(models))
}
if !models[0].UseMaxCompletionTokens {
t.Errorf("models[0].UseMaxCompletionTokens = false, want true")
}
if !models[0].GetUseMaxCompletionTokens() {
t.Errorf("models[0].GetUseMaxCompletionTokens() = false, want true")
}
if models[1].UseMaxCompletionTokens {
t.Errorf("models[1].UseMaxCompletionTokens = true, want default false")
}
if models[1].GetUseMaxCompletionTokens() {
t.Errorf("models[1].GetUseMaxCompletionTokens() = true, want default false")
}
}
func TestOpenAICompatibilityUseMaxCompletionTokensJSONDecoding(t *testing.T) {
const jsonConfig = `{
"openai-compatibility": [
{
"name": "test-provider",
"models": [
{
"name": "model-true",
"alias": "alias-true",
"use-max-completion-tokens": true
},
{
"name": "model-false",
"alias": "alias-false",
"use-max-completion-tokens": false
},
{
"name": "model-omitted",
"alias": "alias-omitted"
}
]
}
]
}`
var cfg Config
if errDecode := json.Unmarshal([]byte(jsonConfig), &cfg); errDecode != nil {
t.Fatalf("json decode error: %v", errDecode)
}
models := cfg.OpenAICompatibility[0].Models
if !models[0].GetUseMaxCompletionTokens() {
t.Errorf("models[0].GetUseMaxCompletionTokens() = false, want true")
}
if models[1].GetUseMaxCompletionTokens() {
t.Errorf("models[1].GetUseMaxCompletionTokens() = true, want false")
}
if models[2].GetUseMaxCompletionTokens() {
t.Errorf("models[2].GetUseMaxCompletionTokens() = true, want default false")
}
}