feat: complete SOP execution workflow

This commit is contained in:
Eric 1549169735@qq.com
2026-08-09 00:29:26 +08:00
parent e32025d2ca
commit c5ab886b70
63 changed files with 1229 additions and 215 deletions

View File

@@ -46,3 +46,15 @@ func TestValidateNodeAnswersRejectsAnswersForMessage(t *testing.T) {
t.Fatalf("validateNodeAnswers() error = %v", err)
}
}
func TestValidateNodeAnswersChoiceOptions(t *testing.T) {
fields := []model.ScenarioField{{FieldKey: "intent", FieldName: "客户意向", FieldType: "text"}}
node := model.SOPNode{Type: "choice", Config: datatypes.JSON([]byte(`{"field_key":"intent","required":true,"options":["继续了解","暂不考虑"]}`))}
if err := validateNodeAnswers(node, fields, map[string]interface{}{"intent": "继续了解"}); err != nil {
t.Fatalf("validateNodeAnswers() error = %v", err)
}
err := validateNodeAnswers(node, fields, map[string]interface{}{"intent": "绕过配置的值"})
if err == nil || !strings.Contains(err.Error(), "选项不正确") {
t.Fatalf("validateNodeAnswers() error = %v, want invalid choice option", err)
}
}