package graph import ( "testing" "github.com/aisim/kb-cli/internal/vault" ) func TestBuildGraph(t *testing.T) { files := []*vault.FileMeta{ { Path: "FAQ/充装类/001-test.md", Title: "测试FAQ", Section: "FAQ", Tags: []string{"充装", "智能枪"}, Entities: []string{"YSP-35.5"}, Wikilinks: []string{}, Content: "测试内容", }, { Path: "知识/002-配置.md", Title: "充装规格配置", Section: "知识", Tags: []string{"充装"}, Entities: []string{}, Wikilinks: []string{}, Content: "配置内容", }, } g := BuildGraph(files) if len(g.Nodes) != 2 { t.Errorf("node count = %d, want 2", len(g.Nodes)) } // 应该有 3 条边:2条 tag + 1条 entity tagEdges := 0 entityEdges := 0 for _, e := range g.Edges { if e.Relation == "tag" { tagEdges++ } if e.Relation == "entity" { entityEdges++ } } if tagEdges != 3 { // 充装 + 智能枪 + 充装(第二个文件) t.Errorf("tag edges = %d, want 3", tagEdges) } if entityEdges != 1 { t.Errorf("entity edges = %d, want 1", entityEdges) } }