package usecase import ( "testing" "apps/backend/internal/module/radar/domain" ) func TestScoreOpportunityPriorityIncludesEvidenceAndFreshness(t *testing.T) { got := scoreOpportunityPriority(&domain.CandidatePost{MatchedTerm: "泛紅", Text: "泛紅換季怎麼辦"}, &JudgeResult{ IntentScore: 80, Reasons: []domain.OpportunityReason{ {Dimension: domain.DimIntent, Score: 30, Reason: "明確求助"}, {Dimension: domain.DimFreshness, Score: 15, Reason: "今天發布"}, {Dimension: domain.DimFit, Score: 10, Reason: "命中痛點"}, {Dimension: domain.DimAuthenticity, Score: 30, Reason: "真實語氣"}, }, }) if got.Priority < 50 || got.Band == "low" || got.DemandIntent != 100 || got.Freshness != 100 || len(got.Evidence) == 0 { t.Fatalf("unexpected priority: %+v", got) } }