74 lines
1.8 KiB
Go
74 lines
1.8 KiB
Go
package dto
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Wei-Shaw/sub2api/internal/service"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestUsageLogFromService_IncludesOpenAIWSMode(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
wsLog := &service.UsageLog{
|
|
RequestID: "req_1",
|
|
Model: "gpt-5.3-codex",
|
|
OpenAIWSMode: true,
|
|
}
|
|
httpLog := &service.UsageLog{
|
|
RequestID: "resp_1",
|
|
Model: "gpt-5.3-codex",
|
|
OpenAIWSMode: false,
|
|
}
|
|
|
|
require.True(t, UsageLogFromService(wsLog).OpenAIWSMode)
|
|
require.False(t, UsageLogFromService(httpLog).OpenAIWSMode)
|
|
require.True(t, UsageLogFromServiceAdmin(wsLog).OpenAIWSMode)
|
|
require.False(t, UsageLogFromServiceAdmin(httpLog).OpenAIWSMode)
|
|
}
|
|
|
|
func TestUsageLogFromService_PrefersRequestTypeForLegacyFields(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
log := &service.UsageLog{
|
|
RequestID: "req_2",
|
|
Model: "gpt-5.3-codex",
|
|
RequestType: service.RequestTypeWSV2,
|
|
Stream: false,
|
|
OpenAIWSMode: false,
|
|
}
|
|
|
|
userDTO := UsageLogFromService(log)
|
|
adminDTO := UsageLogFromServiceAdmin(log)
|
|
|
|
require.Equal(t, "ws_v2", userDTO.RequestType)
|
|
require.True(t, userDTO.Stream)
|
|
require.True(t, userDTO.OpenAIWSMode)
|
|
require.Equal(t, "ws_v2", adminDTO.RequestType)
|
|
require.True(t, adminDTO.Stream)
|
|
require.True(t, adminDTO.OpenAIWSMode)
|
|
}
|
|
|
|
func TestUsageCleanupTaskFromService_RequestTypeMapping(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
requestType := int16(service.RequestTypeStream)
|
|
task := &service.UsageCleanupTask{
|
|
ID: 1,
|
|
Status: service.UsageCleanupStatusPending,
|
|
Filters: service.UsageCleanupFilters{
|
|
RequestType: &requestType,
|
|
},
|
|
}
|
|
|
|
dtoTask := UsageCleanupTaskFromService(task)
|
|
require.NotNil(t, dtoTask)
|
|
require.NotNil(t, dtoTask.Filters.RequestType)
|
|
require.Equal(t, "stream", *dtoTask.Filters.RequestType)
|
|
}
|
|
|
|
func TestRequestTypeStringPtrNil(t *testing.T) {
|
|
t.Parallel()
|
|
require.Nil(t, requestTypeStringPtr(nil))
|
|
}
|