選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

32 行
1.0 KiB

  1. package service
  2. import (
  3. "testing"
  4. "github.com/QuantumNous/new-api/dto"
  5. "github.com/stretchr/testify/require"
  6. )
  7. func TestConvertGeminiRoleToOpenAIUsesSafeUserFallback(t *testing.T) {
  8. require.Equal(t, "user", convertGeminiRoleToOpenAI("user"))
  9. require.Equal(t, "assistant", convertGeminiRoleToOpenAI("model"))
  10. require.Equal(t, "function", convertGeminiRoleToOpenAI("function"))
  11. require.Equal(t, "user", convertGeminiRoleToOpenAI("unknown"))
  12. }
  13. func TestExtractTextFromGeminiPartsSkipsEmptyParts(t *testing.T) {
  14. parts := []dto.GeminiPart{{Text: "first"}, {}, {Text: "last"}}
  15. require.Equal(t, "first\nlast", extractTextFromGeminiParts(parts))
  16. }
  17. func TestToJSONStringSerializesValuesAndUsesObjectFallback(t *testing.T) {
  18. require.Equal(t, `{"answer":42}`, toJSONString(map[string]int{"answer": 42}))
  19. require.Equal(t, "{}", toJSONString(make(chan int)))
  20. }
  21. func TestStopReasonOpenAI2Claude(t *testing.T) {
  22. require.Equal(t, "end_turn", stopReasonOpenAI2Claude("stop"))
  23. require.NotEmpty(t, stopReasonOpenAI2Claude("unknown"))
  24. }