package service import ( "testing" "github.com/QuantumNous/new-api/dto" "github.com/stretchr/testify/require" ) func TestConvertGeminiRoleToOpenAIUsesSafeUserFallback(t *testing.T) { require.Equal(t, "user", convertGeminiRoleToOpenAI("user")) require.Equal(t, "assistant", convertGeminiRoleToOpenAI("model")) require.Equal(t, "function", convertGeminiRoleToOpenAI("function")) require.Equal(t, "user", convertGeminiRoleToOpenAI("unknown")) } func TestExtractTextFromGeminiPartsSkipsEmptyParts(t *testing.T) { parts := []dto.GeminiPart{{Text: "first"}, {}, {Text: "last"}} require.Equal(t, "first\nlast", extractTextFromGeminiParts(parts)) } func TestToJSONStringSerializesValuesAndUsesObjectFallback(t *testing.T) { require.Equal(t, `{"answer":42}`, toJSONString(map[string]int{"answer": 42})) require.Equal(t, "{}", toJSONString(make(chan int))) } func TestStopReasonOpenAI2Claude(t *testing.T) { require.Equal(t, "end_turn", stopReasonOpenAI2Claude("stop")) require.NotEmpty(t, stopReasonOpenAI2Claude("unknown")) }