package service import "testing" func TestShortDramaProjectDoesNotRequireLocalization(t *testing.T) { input := normalizeCreateProjectInput(ProjectInput{ Name: "测试短剧", StyleID: "00000000-0000-0000-0000-000000000001", EraType: "modern_city", AspectRatio: "9:16", }) if input.ProjectType != "premium_drama" { t.Fatalf("expected request without localization to be treated as premium_drama, got %q", input.ProjectType) } if err := validateProjectInput(input); err != nil { t.Fatalf("short drama project should not require localization: %v", err) } } func TestVideoRedrawScriptUsesCreationDefaults(t *testing.T) { followerCount := "百万粉丝" input := normalizeCreateProjectInput(ProjectInput{ ProjectType: "video_redraw", Name: "测试剧本", StyleID: "00000000-0000-0000-0000-000000000001", ShortDramaType: "都市情感", PlayCount: "全网播放破亿", AudienceProfile: "25 至 35 岁女性", Producer: "测试出品方", CastMembers: []ProjectCastMemberInput{{ Name: "测试主演", FollowerCount: &followerCount, }}, }) if input.EraType != "modern_city" || input.AspectRatio != "9:16" { t.Fatalf("unexpected redraw creation defaults: era=%q ratio=%q", input.EraType, input.AspectRatio) } if input.Localization == nil || *input.Localization != "china" { t.Fatalf("expected default localization china, got %v", input.Localization) } if err := validateProjectInput(input); err != nil { t.Fatalf("redraw project metadata should be valid after defaults: %v", err) } } func TestVideoRedrawProjectOnlyRequiresName(t *testing.T) { input := normalizeCreateProjectInput(ProjectInput{ ProjectType: "video_redraw", Name: "测试剧本", StyleID: "00000000-0000-0000-0000-000000000001", }) if err := validateProjectInput(input); err != nil { t.Fatalf("redraw project optional metadata should be accepted: %v", err) } }