package handler import ( "testing" "silk-server-go/internal/service" ) func TestIsUUID(t *testing.T) { valid := []string{ "1271e550-ccf1-443e-8964-980c6047e2f0", "00000000-0000-0000-0000-000000000000", } invalid := []string{"smoke-room", "", "not-a-uuid", "1271e550ccf1443e8964980c6047e2f0"} for _, s := range valid { if !isUUID(s) { t.Errorf("%q 应为合法 UUID", s) } } for _, s := range invalid { if isUUID(s) { t.Errorf("%q 不应被当作 UUID", s) } } } func TestBuildRiskInputUsesAbnormalProbability(t *testing.T) { in := buildRiskInput(&service.AIDetectResponse{ ModelVersion: "silk-yolo-2026.08.1", Status: "abnormal", AbnormalProbability: 0.93, }) if in.AI == nil || *in.AI != 0.93 { t.Fatalf("AI 异常概率应进入风险输入,实际 %v", in.AI) } if in.ModelVersion != "silk-yolo-2026.08.1" { t.Errorf("modelVersion = %s", in.ModelVersion) } } func TestBuildRiskInputUnknownKeepsAIMissing(t *testing.T) { in := buildRiskInput(&service.AIDetectResponse{Status: "unknown"}) if in.AI != nil { t.Fatalf("unknown 状态不应把 0 当作 AI 组件,实际 %v", in.AI) } } func TestBuildRiskInputFallsBackToDetections(t *testing.T) { in := buildRiskInput(&service.AIDetectResponse{ Detections: []service.AIDetection{{ClassName: "sick", Confidence: 0.9}}, }) if in.AI == nil || *in.AI != 0.9 { t.Fatalf("旧 AI 响应应从检测类别计算异常概率,实际 %v", in.AI) } }