package store import ( "path/filepath" "testing" ) func TestScanLogRoundTrip(t *testing.T) { s, err := Open(filepath.Join(t.TempDir(), "t.db")) if err != nil { t.Fatalf("Open: %v", err) } defer s.Close() if err := s.SaveScanLogs([]ScanLog{ {SourcePath: "/a.jpg", TargetDir: "/out/图片_A", FileSize: 100}, {SourcePath: "/b.mp4", TargetDir: "/out/视频_B", FileSize: 200}, }); err != nil { t.Fatalf("SaveScanLogs: %v", err) } m, err := s.LoadScanLog() if err != nil { t.Fatalf("LoadScanLog: %v", err) } if len(m) != 2 || m["/a.jpg"].TargetDir != "/out/图片_A" { t.Fatalf("加载结果不对: %v", m) } // 同路径 upsert:覆盖旧目标目录与大小,不新增行 if err := s.SaveScanLogs([]ScanLog{ {SourcePath: "/a.jpg", TargetDir: "/out/图片_A2", FileSize: 99}, }); err != nil { t.Fatalf("SaveScanLogs upsert: %v", err) } m2, _ := s.LoadScanLog() if len(m2) != 2 || m2["/a.jpg"].TargetDir != "/out/图片_A2" || m2["/a.jpg"].FileSize != 99 { t.Fatalf("upsert 结果不对: %v", m2) } }