30 lines
1.3 KiB
Go
30 lines
1.3 KiB
Go
package httpapi
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/easyai/easyai-ai-gateway/apps/api/internal/store"
|
|
)
|
|
|
|
func TestVolcesCompatibleTaskPreservesOfficialFieldsAndGatewayBilling(t *testing.T) {
|
|
now := time.Date(2026, 7, 18, 8, 0, 0, 0, time.UTC)
|
|
task := store.GatewayTask{
|
|
ID: "gateway-task-1", Kind: "videos.generations", Status: "succeeded", Model: "doubao-seedance-2-0-mini-260615",
|
|
RemoteTaskID: "cgt-upstream-1", CreatedAt: now, UpdatedAt: now.Add(time.Second),
|
|
Result: map[string]any{
|
|
"id": "cgt-upstream-1", "model": "doubao-seedance-2-0-mini-260615", "status": "succeeded",
|
|
"content": map[string]any{"video_url": "https://example.com/out.mp4"}, "usage": map[string]any{"total_tokens": 9},
|
|
},
|
|
Billings: []any{map[string]any{"amount": 3}}, BillingSummary: map[string]any{"currency": "resource"}, FinalChargeAmount: 3,
|
|
}
|
|
got := volcesCompatibleTask(task)
|
|
if got["id"] != task.ID || got["upstream_task_id"] != task.RemoteTaskID || got["status"] != "succeeded" {
|
|
t.Fatalf("unexpected compatibility identity/status: %+v", got)
|
|
}
|
|
content, _ := got["content"].(map[string]any)
|
|
if content["video_url"] != "https://example.com/out.mp4" || got["usage"] == nil || got["billings"] == nil {
|
|
t.Fatalf("official or billing fields were lost: %+v", got)
|
|
}
|
|
}
|