Handle Gemini inline data in asset and size processing
This commit is contained in:
@@ -37,6 +37,22 @@ func TestRequestAssetFromValueDetectsDataURLAndRawBase64(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestRequestAssetFromValueDetectsGeminiInlineData(t *testing.T) {
|
||||
payload := base64.StdEncoding.EncodeToString([]byte("inline gemini image"))
|
||||
decoded, ok, err := requestAssetFromValue(
|
||||
"data",
|
||||
[]string{"contents", "[0]", "parts", "[0]", "inlineData"},
|
||||
payload,
|
||||
map[string]any{"mimeType": "image/png"},
|
||||
)
|
||||
if err != nil {
|
||||
t.Fatalf("decode Gemini inlineData: %v", err)
|
||||
}
|
||||
if !ok || decoded.ContentType != "image/png" || string(decoded.Bytes) != "inline gemini image" {
|
||||
t.Fatalf("unexpected Gemini inlineData asset: ok=%v decoded=%+v", ok, decoded)
|
||||
}
|
||||
}
|
||||
|
||||
func TestCanonicalConversationMessageHashUsesTextAndAssetRefs(t *testing.T) {
|
||||
message := map[string]any{
|
||||
"role": "user",
|
||||
|
||||
Reference in New Issue
Block a user