package vault import ( "os" "path/filepath" "testing" ) func TestScanVault(t *testing.T) { tmpDir := t.TempDir() // 创建测试目录结构 os.MkdirAll(filepath.Join(tmpDir, "FAQ", "充装类"), 0755) os.MkdirAll(filepath.Join(tmpDir, "笔记"), 0755) os.MkdirAll(filepath.Join(tmpDir, ".obsidian"), 0755) // 应被跳过 os.WriteFile(filepath.Join(tmpDir, "FAQ", "充装类", "001-test.md"), []byte(`--- title: 测试FAQ tags: [充装] --- 内容 `), 0644) os.WriteFile(filepath.Join(tmpDir, "笔记", "note.md"), []byte(`--- title: 笔记 --- 笔记内容 `), 0644) os.WriteFile(filepath.Join(tmpDir, ".obsidian", "config.json"), []byte(`{}`), 0644) files, err := ScanVault(tmpDir) if err != nil { t.Fatalf("ScanVault failed: %v", err) } if len(files) != 2 { t.Errorf("file count = %d, want 2", len(files)) } }