Browse Source

test(task-pricing): cover doubao usage parsing

master
fengsilin 3 weeks ago
parent
commit
f3778e3931
1 changed files with 50 additions and 0 deletions
  1. +50
    -0
      relay/channel/task/doubao/adaptor_test.go

+ 50
- 0
relay/channel/task/doubao/adaptor_test.go View File

@@ -0,0 +1,50 @@
package doubao

import (
"testing"

"github.com/QuantumNous/new-api/model"
"github.com/stretchr/testify/require"
)

func TestParseTaskResult_SuccessWithUsage(t *testing.T) {
adaptor := &TaskAdaptor{}
taskInfo, err := adaptor.ParseTaskResult([]byte(`{
"status":"succeeded",
"content":{"video_url":"https://example.test/video.mp4"},
"usage":{"completion_tokens":12,"total_tokens":3456}
}`))

require.NoError(t, err)
require.Equal(t, string(model.TaskStatusSuccess), taskInfo.Status)
require.Equal(t, "https://example.test/video.mp4", taskInfo.Url)
require.Equal(t, 12, taskInfo.CompletionTokens)
require.Equal(t, 3456, taskInfo.TotalTokens)
}

func TestParseTaskResult_SuccessWithoutUsage(t *testing.T) {
adaptor := &TaskAdaptor{}
taskInfo, err := adaptor.ParseTaskResult([]byte(`{
"status":"succeeded",
"content":{"video_url":"https://example.test/video.mp4"}
}`))

require.NoError(t, err)
require.Equal(t, string(model.TaskStatusSuccess), taskInfo.Status)
require.Zero(t, taskInfo.TotalTokens)
}

func TestParseTaskResult_NonSuccessStatusesDoNotRequireUsage(t *testing.T) {
adaptor := &TaskAdaptor{}
cases := map[string]model.TaskStatus{
"queued": model.TaskStatusQueued,
"processing": model.TaskStatusInProgress,
"failed": model.TaskStatusFailure,
}
for status, want := range cases {
taskInfo, err := adaptor.ParseTaskResult([]byte(`{"status":"` + status + `"}`))
require.NoError(t, err)
require.Equal(t, string(want), taskInfo.Status)
require.Zero(t, taskInfo.TotalTokens)
}
}

Loading…
Cancel
Save