one-api/controller/relay_test.go
Laisky.Cai 8b477d896d 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
2023-11-17 03:24:55 +00:00

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)
})
}
}