mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-09-18 01:26:37 +08:00
- Added required packages to go.mod: `github.com/Laisky/errors/v2 v2.0.1`, `github.com/stretchr/testify v1.8.3`, `github.com/davecgh/go-spew v1.1.1`, `github.com/pmezard/go-difflib v1.0.0` - Increased the number of returned recordings to 100 in `relay-utils.go` - Refactored and simplified code in `relay-aiproxy.go` for improved message retrieval and error handling - Added new test file `relay_test.go` and various test cases for different message types - Modified functions in `group.go` and `relay.go` for improved functionality
62 lines
1.2 KiB
Go
62 lines
1.2 KiB
Go
package controller
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGeneralOpenAIRequest_TextMessages(t *testing.T) {
|
|
tests := []struct {
|
|
name string
|
|
messages interface{}
|
|
want []Message
|
|
wantErr error
|
|
}{
|
|
{
|
|
name: "Test with []any messages",
|
|
messages: []any{Message{}, Message{}},
|
|
want: []Message{{}, {}},
|
|
wantErr: nil,
|
|
},
|
|
{
|
|
name: "Test with []Message messages",
|
|
messages: []Message{{}, {}},
|
|
want: []Message{{}, {}},
|
|
wantErr: nil,
|
|
},
|
|
{
|
|
name: "Test with invalid message type",
|
|
messages: "invalid",
|
|
want: nil,
|
|
wantErr: fmt.Errorf("invalid message type string"),
|
|
},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
r := &GeneralOpenAIRequest{
|
|
Messages: tt.messages,
|
|
}
|
|
got := new(GeneralOpenAIRequest)
|
|
|
|
blob, err := json.Marshal(r)
|
|
require.NoError(t, err)
|
|
err = json.Unmarshal(blob, got)
|
|
require.NoError(t, err)
|
|
|
|
gotMessages, err := got.TextMessages()
|
|
if tt.wantErr != nil {
|
|
require.ErrorContains(t, err, "cannot unmarshal string into Go value")
|
|
return
|
|
} else {
|
|
require.NoError(t, err)
|
|
}
|
|
|
|
require.Equal(t, tt.want, gotMessages)
|
|
})
|
|
}
|
|
}
|