package service import ( "testing" "github.com/QuantumNous/new-api/dto" relaycommon "github.com/QuantumNous/new-api/relay/common" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) func TestResponseConverterFacades(t *testing.T) { cache5m, cache1h := NormalizeCacheCreationSplit(10, 3, 2) assert.Equal(t, 8, cache5m) assert.Equal(t, 2, cache1h) chatResp := &dto.OpenAITextResponse{ Id: "chatcmpl_1", Model: "gpt-test", Choices: []dto.OpenAITextResponseChoice{ { Message: dto.Message{ Role: "assistant", Content: "hello", }, FinishReason: "stop", }, }, } claudeResp := ResponseOpenAI2Claude(chatResp, &relaycommon.RelayInfo{}) require.NotNil(t, claudeResp) assert.Equal(t, "message", claudeResp.Type) geminiResp := ResponseOpenAI2Gemini(chatResp, &relaycommon.RelayInfo{}) require.NotNil(t, geminiResp) require.Len(t, geminiResp.Candidates, 1) } func TestStreamResponseConverterFacades(t *testing.T) { info := &relaycommon.RelayInfo{ SendResponseCount: 1, ClaudeConvertInfo: &relaycommon.ClaudeConvertInfo{ LastMessagesType: relaycommon.LastMessageTypeNone, }, } streamResp := &dto.ChatCompletionsStreamResponse{ Id: "chatcmpl_1", Model: "gpt-test", Choices: []dto.ChatCompletionsStreamResponseChoice{ { Delta: dto.ChatCompletionsStreamResponseChoiceDelta{ Content: ptrValue("hello"), }, }, }, } claudeResponses := StreamResponseOpenAI2Claude(streamResp, info) require.NotEmpty(t, claudeResponses) geminiResp := StreamResponseOpenAI2Gemini(streamResp, &relaycommon.RelayInfo{}) require.NotNil(t, geminiResp) require.Len(t, geminiResp.Candidates, 1) } func ptrValue[T any](value T) *T { return &value }