修复 Gemini 兼容路由启动失败
This commit is contained in:
@@ -2,6 +2,65 @@ package httpapi
|
||||
|
||||
import "testing"
|
||||
|
||||
func TestGeminiGenerateContentModelFromPath(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
prefix string
|
||||
requestPath string
|
||||
wantModel string
|
||||
wantOK bool
|
||||
}{
|
||||
{
|
||||
name: "v1beta model",
|
||||
prefix: "/v1beta/models/",
|
||||
requestPath: "/v1beta/models/gemini-2.5-flash:generateContent",
|
||||
wantModel: "gemini-2.5-flash",
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "v1 model",
|
||||
prefix: "/v1/models/",
|
||||
requestPath: "/v1/models/gemini-compatible:generateContent",
|
||||
wantModel: "gemini-compatible",
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "bare model path",
|
||||
prefix: "/models/",
|
||||
requestPath: "/models/gemini-image:generateContent",
|
||||
wantModel: "gemini-image",
|
||||
wantOK: true,
|
||||
},
|
||||
{
|
||||
name: "wrong suffix",
|
||||
prefix: "/v1beta/models/",
|
||||
requestPath: "/v1beta/models/gemini-2.5-flash:countTokens",
|
||||
wantOK: false,
|
||||
},
|
||||
{
|
||||
name: "missing model",
|
||||
prefix: "/v1beta/models/",
|
||||
requestPath: "/v1beta/models/:generateContent",
|
||||
wantOK: false,
|
||||
},
|
||||
{
|
||||
name: "extra path segment",
|
||||
prefix: "/v1beta/models/",
|
||||
requestPath: "/v1beta/models/group/gemini-2.5-flash:generateContent",
|
||||
wantOK: false,
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
gotModel, gotOK := geminiGenerateContentModelFromPath(tt.prefix, tt.requestPath)
|
||||
if gotOK != tt.wantOK || gotModel != tt.wantModel {
|
||||
t.Fatalf("geminiGenerateContentModelFromPath() = %q, %v; want %q, %v", gotModel, gotOK, tt.wantModel, tt.wantOK)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestGeminiImageTaskBodyMapsTextOnlyToImageGenerate(t *testing.T) {
|
||||
mapping, err := geminiImageTaskBody("gemini-image", map[string]any{
|
||||
"contents": []any{
|
||||
|
||||
Reference in New Issue
Block a user