mirror of
https://github.com/songquanpeng/one-api.git
synced 2025-11-10 10:33:41 +08:00
feat: Refactor message handling and update dependencies
- 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
This commit is contained in:
61
controller/relay_test.go
Normal file
61
controller/relay_test.go
Normal file
@@ -0,0 +1,61 @@
|
||||
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)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user