mirror of
https://github.com/router-for-me/CLIProxyAPIPlus.git
synced 2026-04-14 18:42:13 +00:00
36 lines
1.0 KiB
Go
36 lines
1.0 KiB
Go
package gemini
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/tidwall/gjson"
|
|
)
|
|
|
|
func TestConvertCodexResponseToGemini_StreamEmptyOutputUsesOutputItemDoneMessageFallback(t *testing.T) {
|
|
ctx := context.Background()
|
|
originalRequest := []byte(`{"tools":[]}`)
|
|
var param any
|
|
|
|
chunks := [][]byte{
|
|
[]byte("data: {\"type\":\"response.output_item.done\",\"item\":{\"type\":\"message\",\"role\":\"assistant\",\"content\":[{\"type\":\"output_text\",\"text\":\"ok\"}]},\"output_index\":0}"),
|
|
[]byte("data: {\"type\":\"response.completed\",\"response\":{\"usage\":{\"input_tokens\":1,\"output_tokens\":1}}}"),
|
|
}
|
|
|
|
var outputs [][]byte
|
|
for _, chunk := range chunks {
|
|
outputs = append(outputs, ConvertCodexResponseToGemini(ctx, "gemini-2.5-pro", originalRequest, nil, chunk, ¶m)...)
|
|
}
|
|
|
|
found := false
|
|
for _, out := range outputs {
|
|
if gjson.GetBytes(out, "candidates.0.content.parts.0.text").String() == "ok" {
|
|
found = true
|
|
break
|
|
}
|
|
}
|
|
if !found {
|
|
t.Fatalf("expected fallback content from response.output_item.done message; outputs=%q", outputs)
|
|
}
|
|
}
|