39 lines
1.5 KiB
Go
39 lines
1.5 KiB
Go
package worker
|
|
|
|
import "testing"
|
|
|
|
func TestValidateScriptAnalysisResult(t *testing.T) {
|
|
var result scriptAnalysisResult
|
|
result.SellingPoint.Summary = "核心卖点"
|
|
result.StoryStructure.Synopsis = "剧情梗概"
|
|
for episode := 1; episode <= 10; episode++ {
|
|
result.EpisodeHooks = append(result.EpisodeHooks, scriptEpisodeHook{EpisodeNo: episode})
|
|
}
|
|
for index := 0; index < 3; index++ {
|
|
result.Episode10PaywallHooks = append(result.Episode10PaywallHooks, scriptPaywallHook{Content: "候选"})
|
|
}
|
|
result.StoryStructure.Characters = []scriptAnalysisCharacter{{Name: "甲", Faction: "正派"}, {Name: "乙", Faction: "反派"}, {Name: "丙", Faction: "中立派"}}
|
|
if err := validateScriptAnalysisResult(result); err != nil {
|
|
t.Fatalf("expected valid analysis result: %v", err)
|
|
}
|
|
|
|
result.EpisodeHooks[9].EpisodeNo = 9
|
|
if err := validateScriptAnalysisResult(result); err == nil {
|
|
t.Fatal("expected invalid episode hook ordering")
|
|
}
|
|
}
|
|
|
|
func TestValidateScriptAnalysisResultRejectsInvalidFaction(t *testing.T) {
|
|
var result scriptAnalysisResult
|
|
result.SellingPoint.Summary = "核心卖点"
|
|
result.StoryStructure.Synopsis = "剧情梗概"
|
|
for episode := 1; episode <= 10; episode++ {
|
|
result.EpisodeHooks = append(result.EpisodeHooks, scriptEpisodeHook{EpisodeNo: episode})
|
|
}
|
|
result.Episode10PaywallHooks = make([]scriptPaywallHook, 3)
|
|
result.StoryStructure.Characters = []scriptAnalysisCharacter{{Name: "甲", Faction: "未知"}}
|
|
if err := validateScriptAnalysisResult(result); err == nil {
|
|
t.Fatal("expected invalid character faction")
|
|
}
|
|
}
|