| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- package service
- import (
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestParseUsageRequestType(t *testing.T) {
- t.Parallel()
- type testCase struct {
- name string
- input string
- want RequestType
- wantErr bool
- }
- cases := []testCase{
- {name: "unknown", input: "unknown", want: RequestTypeUnknown},
- {name: "sync", input: "sync", want: RequestTypeSync},
- {name: "stream", input: "stream", want: RequestTypeStream},
- {name: "ws_v2", input: "ws_v2", want: RequestTypeWSV2},
- {name: "case_insensitive", input: "WS_V2", want: RequestTypeWSV2},
- {name: "trim_spaces", input: " stream ", want: RequestTypeStream},
- {name: "invalid", input: "xxx", wantErr: true},
- }
- for _, tc := range cases {
- tc := tc
- t.Run(tc.name, func(t *testing.T) {
- t.Parallel()
- got, err := ParseUsageRequestType(tc.input)
- if tc.wantErr {
- require.Error(t, err)
- return
- }
- require.NoError(t, err)
- require.Equal(t, tc.want, got)
- })
- }
- }
- func TestRequestTypeNormalizeAndString(t *testing.T) {
- t.Parallel()
- require.Equal(t, RequestTypeUnknown, RequestType(99).Normalize())
- require.Equal(t, "unknown", RequestType(99).String())
- require.Equal(t, "sync", RequestTypeSync.String())
- require.Equal(t, "stream", RequestTypeStream.String())
- require.Equal(t, "ws_v2", RequestTypeWSV2.String())
- }
- func TestRequestTypeFromLegacy(t *testing.T) {
- t.Parallel()
- require.Equal(t, RequestTypeWSV2, RequestTypeFromLegacy(false, true))
- require.Equal(t, RequestTypeStream, RequestTypeFromLegacy(true, false))
- require.Equal(t, RequestTypeSync, RequestTypeFromLegacy(false, false))
- }
- func TestApplyLegacyRequestFields(t *testing.T) {
- t.Parallel()
- stream, ws := ApplyLegacyRequestFields(RequestTypeSync, true, true)
- require.False(t, stream)
- require.False(t, ws)
- stream, ws = ApplyLegacyRequestFields(RequestTypeStream, false, true)
- require.True(t, stream)
- require.False(t, ws)
- stream, ws = ApplyLegacyRequestFields(RequestTypeWSV2, false, false)
- require.True(t, stream)
- require.True(t, ws)
- stream, ws = ApplyLegacyRequestFields(RequestTypeUnknown, true, false)
- require.True(t, stream)
- require.False(t, ws)
- }
- func TestUsageLogSyncRequestTypeAndLegacyFields(t *testing.T) {
- t.Parallel()
- log := &UsageLog{RequestType: RequestTypeWSV2, Stream: false, OpenAIWSMode: false}
- log.SyncRequestTypeAndLegacyFields()
- require.Equal(t, RequestTypeWSV2, log.RequestType)
- require.True(t, log.Stream)
- require.True(t, log.OpenAIWSMode)
- }
- func TestUsageLogEffectiveRequestTypeFallback(t *testing.T) {
- t.Parallel()
- log := &UsageLog{RequestType: RequestTypeUnknown, Stream: true, OpenAIWSMode: true}
- require.Equal(t, RequestTypeWSV2, log.EffectiveRequestType())
- }
- func TestUsageLogEffectiveRequestTypeNilReceiver(t *testing.T) {
- t.Parallel()
- var log *UsageLog
- require.Equal(t, RequestTypeUnknown, log.EffectiveRequestType())
- }
- func TestUsageLogSyncRequestTypeAndLegacyFieldsNilReceiver(t *testing.T) {
- t.Parallel()
- var log *UsageLog
- log.SyncRequestTypeAndLegacyFields()
- }
|