internal/index/unresolved_test.go
@@ -96,3 +96,35 @@
      t.Errorf("entity 边 provenance: %q", prov)
   }
}
// TestGetUnresolvedLinks 覆盖 GetUnresolvedLinks 查询(explore 命令悬空链接提示用)
func TestGetUnresolvedLinks(t *testing.T) {
   dir := t.TempDir()
   os.MkdirAll(filepath.Join(dir, "FAQ"), 0755)
   // 文档 A 有两条悬空链接;文档 B 无
   os.WriteFile(filepath.Join(dir, "FAQ", "001-文档A.md"),
      []byte("---\ntitle: 文档A\n---\n提到 [[悬空甲]] 和 [[悬空乙]]\n"), 0644)
   os.WriteFile(filepath.Join(dir, "FAQ", "002-文档B.md"),
      []byte("---\ntitle: 文档B\n---\n无链接\n"), 0644)
   store, _ := Open(filepath.Join(t.TempDir(), "kb.db"))
   defer store.Close()
   Reconcile(store, dir)
   links, err := store.GetUnresolvedLinks("FAQ/001-文档A.md")
   if err != nil {
      t.Fatalf("GetUnresolvedLinks failed: %v", err)
   }
   if len(links) != 2 {
      t.Fatalf("文档A 悬空链接 = %d, want 2: %v", len(links), links)
   }
   // 无悬空链接的文档返回空(非 nil 错误)
   links, err = store.GetUnresolvedLinks("FAQ/002-文档B.md")
   if err != nil {
      t.Fatalf("GetUnresolvedLinks(文档B) failed: %v", err)
   }
   if len(links) != 0 {
      t.Errorf("文档B 悬空链接 = %d, want 0: %v", len(links), links)
   }
}