package run import "testing" func TestBuildOutputViewsSupportsKnowledge(t *testing.T) { knowledge := []KnowledgeGroup{{Key: "soft_stool", Name: "软便", Type: "symptom"}} raw := []byte(`{"fields":[{"key":"recommended","name":"推荐知识","type":"array","source":"knowledge"},{"key":"symptom","name":"症状","type":"object","source":"knowledge","source_field":"soft_stool"}]}`) outputs, err := buildOutputViews(raw, nil, nil, nil, knowledge, "preview", "") if err != nil { t.Fatal(err) } if len(outputs) != 2 { t.Fatalf("outputs=%#v", outputs) } if groups, ok := outputs[0].Value.([]KnowledgeGroup); !ok || len(groups) != 1 { t.Fatalf("knowledge output=%#v", outputs[0].Value) } if group, ok := outputs[1].Value.(KnowledgeGroup); !ok || group.Key != "soft_stool" { t.Fatalf("selected output=%#v", outputs[1].Value) } }