Something went wrong. Try again.
sloproxy
Something went wrong. Try again.
2.8 kB · 86 lines
Go
at main
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687package config
import ( "encoding/json" "testing"
"gopkg.in/yaml.v3")
func TestMaxContextLengthConfigDecoding(t *testing.T) { const want = 1048576 const yamlConfig = `codex-api-key: - models: - name: codex-upstream alias: codex-alias max-context-length: 1048576claude-api-key: - models: - name: claude-upstream alias: claude-alias max-context-length: 1048576gemini-api-key: - models: - name: gemini-upstream alias: gemini-alias max-context-length: 1048576interactions-api-key: - models: - name: interactions-upstream alias: interactions-alias max-context-length: 1048576xai-api-key: - models: - name: xai-upstream alias: xai-alias max-context-length: 1048576openai-compatibility: - models: - name: compat-upstream alias: compat-alias max-context-length: 1048576` const jsonConfig = `{"codex-api-key":[{"models":[{"name":"codex-upstream","alias":"codex-alias","max-context-length":1048576}]}],"claude-api-key":[{"models":[{"name":"claude-upstream","alias":"claude-alias","max-context-length":1048576}]}],"gemini-api-key":[{"models":[{"name":"gemini-upstream","alias":"gemini-alias","max-context-length":1048576}]}],"interactions-api-key":[{"models":[{"name":"interactions-upstream","alias":"interactions-alias","max-context-length":1048576}]}],"xai-api-key":[{"models":[{"name":"xai-upstream","alias":"xai-alias","max-context-length":1048576}]}],"openai-compatibility":[{"models":[{"name":"compat-upstream","alias":"compat-alias","max-context-length":1048576}]}]}`
for _, testCase := range []struct { name string decode func(*Config) error }{ { name: "YAML", decode: func(cfg *Config) error { return yaml.Unmarshal([]byte(yamlConfig), cfg) }, }, { name: "JSON", decode: func(cfg *Config) error { return json.Unmarshal([]byte(jsonConfig), cfg) }, }, } { t.Run(testCase.name, func(t *testing.T) { var cfg Config if errDecode := testCase.decode(&cfg); errDecode != nil { t.Fatalf("decode config: %v", errDecode) }
models := []struct { name string got int }{ {name: "codex", got: cfg.CodexKey[0].Models[0].MaxContextLength}, {name: "claude", got: cfg.ClaudeKey[0].Models[0].MaxContextLength}, {name: "gemini", got: cfg.GeminiKey[0].Models[0].MaxContextLength}, {name: "interactions", got: cfg.InteractionsKey[0].Models[0].MaxContextLength}, {name: "xai", got: cfg.XAIKey[0].Models[0].MaxContextLength}, {name: "openai compatibility", got: cfg.OpenAICompatibility[0].Models[0].MaxContextLength}, } for _, model := range models { if model.got != want { t.Errorf("%s max-context-length = %d, want %d", model.name, model.got, want) } } }) }}