tokenFactory/dto/openai_video_test.go

44 lines
985 B
Go

package dto
import (
"encoding/json"
"strings"
"testing"
)
func TestOpenAIVideoJSONShape(t *testing.T) {
v := NewOpenAIVideo()
v.ID = "task_test"
v.Model = "Seedance2.0"
v.Status = VideoStatusInProgress
v.Progress = 30
v.CreatedAt = FormatTimeUnixRFC3339(1778292296)
raw, err := json.Marshal(v)
if err != nil {
t.Fatal(err)
}
s := string(raw)
if strings.Contains(s, `"task_id"`) {
t.Fatalf("unexpected task_id in JSON: %s", s)
}
if strings.Contains(s, `"video_url"`) {
t.Fatalf("unexpected top-level video_url in JSON: %s", s)
}
if !strings.Contains(s, `"object":"video.generation"`) {
t.Fatalf("expected object video.generation, got: %s", s)
}
if !strings.Contains(s, `"created_at":"`) {
t.Fatalf("expected RFC3339 created_at string, got: %s", s)
}
var m map[string]any
if err := json.Unmarshal(raw, &m); err != nil {
t.Fatal(err)
}
if _, ok := m["completed_at"]; ok {
t.Fatalf("completed_at should be omitted when empty, got: %s", s)
}
}