// 媒体反推任务范围测试,确保单分镜任务不会污染剧集或项目的总处理状态。 package worker import ( "testing" "github.com/google/uuid" ) // TestIsWholeVideoAnalysis 验证仅未绑定分镜的任务可更新反推范围总状态。 func TestIsWholeVideoAnalysis(t *testing.T) { storyboardID := uuid.New() tests := []struct { name string snapshot analysisSnapshot want bool }{ {name: "整段视频反推", snapshot: analysisSnapshot{}, want: true}, {name: "单分镜重新反推", snapshot: analysisSnapshot{StoryboardID: &storyboardID}, want: false}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { if got := isWholeVideoAnalysis(test.snapshot); got != test.want { t.Fatalf("isWholeVideoAnalysis() = %v, want %v", got, test.want) } }) } } // TestRedrawStoryboardsReady 验证只有全部分镜提示词完整时才恢复剧本反推入口。 func TestRedrawStoryboardsReady(t *testing.T) { tests := []struct { name string total int64 incomplete int64 want bool }{ {name: "没有分镜", total: 0, incomplete: 0, want: false}, {name: "仍有失败分镜", total: 7, incomplete: 1, want: false}, {name: "全部分镜完整", total: 7, incomplete: 0, want: true}, } for _, test := range tests { t.Run(test.name, func(t *testing.T) { if got := redrawStoryboardsReady(test.total, test.incomplete); got != test.want { t.Fatalf("redrawStoryboardsReady(%d, %d) = %v, want %v", test.total, test.incomplete, got, test.want) } }) } }