From cb72759b568baf34281bd15f821ac9834c17bbb9 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Thu, 03 Sep 2026 14:24:29 +0800
Subject: [PATCH] merge: 合并 origin/master schema v2 重构(RWR/增量对账/explore),保留 tag/entity 实验于 experiment 分支 + 本地 expandPath 修复与 draft list 过滤
---
internal/index/unresolved_test.go | 32 ++++++++++++++++++++++++++++++++
1 files changed, 32 insertions(+), 0 deletions(-)
diff --git a/internal/index/unresolved_test.go b/internal/index/unresolved_test.go
index c598256..4d15230 100644
--- a/internal/index/unresolved_test.go
+++ b/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)
+ }
+}
--
Gitblit v1.10.0