From 09c2a03cefa687832257d3b816da50db3cfcc0f2 Mon Sep 17 00:00:00 2001
From: ai_xiaopei <xiaopei@aisim.cn>
Date: Sat, 25 Jul 2026 23:48:11 +0800
Subject: [PATCH] feat: 实现输出格式化

---
 internal/index/sqlite_test.go |   66 +++++++++++++++++++++++++++++++++
 1 files changed, 66 insertions(+), 0 deletions(-)

diff --git a/internal/index/sqlite_test.go b/internal/index/sqlite_test.go
new file mode 100644
index 0000000..f83b4bb
--- /dev/null
+++ b/internal/index/sqlite_test.go
@@ -0,0 +1,66 @@
+package index
+
+import (
+	"path/filepath"
+	"testing"
+
+	"github.com/aisim/kb-cli/internal/graph"
+)
+
+func TestStore(t *testing.T) {
+	tmpDir := t.TempDir()
+	dbPath := filepath.Join(tmpDir, "test.db")
+
+	store, err := Open(dbPath)
+	if err != nil {
+		t.Fatalf("Open failed: %v", err)
+	}
+	defer store.Close()
+
+	// 测试插入节点
+	node := &graph.Node{
+		Path:    "FAQ/充装类/001-test.md",
+		Title:   "测试FAQ",
+		Section: "FAQ",
+		Tags:    []string{"充装", "智能枪"},
+	}
+	id, err := store.InsertNode(node)
+	if err != nil {
+		t.Fatalf("InsertNode failed: %v", err)
+	}
+	if id == 0 {
+		t.Error("InsertNode returned 0 id")
+	}
+
+	// 测试插入边
+	edge := &graph.Edge{
+		FromNode: id,
+		ToNode:   1000000,
+		Relation: "tag",
+		Label:    "充装",
+	}
+	if err := store.InsertEdge(edge); err != nil {
+		t.Fatalf("InsertEdge failed: %v", err)
+	}
+
+	// 测试元信息
+	if err := store.SetMeta("git_commit", "abc123"); err != nil {
+		t.Fatalf("SetMeta failed: %v", err)
+	}
+	commit, err := store.GetMeta("git_commit")
+	if err != nil {
+		t.Fatalf("GetMeta failed: %v", err)
+	}
+	if commit != "abc123" {
+		t.Errorf("commit = %q, want %q", commit, "abc123")
+	}
+
+	// 测试计数
+	count, err := store.NodeCount()
+	if err != nil {
+		t.Fatalf("NodeCount failed: %v", err)
+	}
+	if count != 1 {
+		t.Errorf("node count = %d, want 1", count)
+	}
+}

--
Gitblit v1.9.1