first commit

This commit is contained in:
2026-08-14 23:41:57 +08:00
commit 086803a8dd
471 changed files with 91938 additions and 0 deletions
+66
View File
@@ -0,0 +1,66 @@
package dream
import (
"encoding/json"
"testing"
)
func TestReportJSONTags(t *testing.T) {
r := Report{
Merged: 1,
Deduped: 2,
PathsCleaned: 3,
Pruned: 4,
Distilled: 5,
BytesBefore: 100,
BytesAfter: 80,
FilesBefore: 10,
FilesAfter: 9,
DryRun: true,
Notes: []string{"pruned stale entry"},
}
r.Reconciled.Indexed = 6
r.Reconciled.Pruned = 7
data, err := json.Marshal(r)
if err != nil {
t.Fatalf("marshal: %v", err)
}
var m map[string]any
if err := json.Unmarshal(data, &m); err != nil {
t.Fatalf("unmarshal: %v", err)
}
for _, key := range []string{
"merged", "deduped", "paths_cleaned", "pruned", "distilled",
"bytes_before", "bytes_after", "files_before", "files_after",
"dry_run", "notes", "reconciled",
} {
if _, ok := m[key]; !ok {
t.Errorf("missing JSON key %q in %s", key, data)
}
}
rec, ok := m["reconciled"].(map[string]any)
if !ok {
t.Fatalf("reconciled not an object: %v", m["reconciled"])
}
if _, ok := rec["indexed"]; !ok {
t.Errorf("reconciled.indexed missing: %v", rec)
}
if _, ok := rec["pruned"]; !ok {
t.Errorf("reconciled.pruned missing: %v", rec)
}
}
func TestReportZeroValueOmitsNotes(t *testing.T) {
data, err := json.Marshal(Report{})
if err != nil {
t.Fatalf("marshal: %v", err)
}
var m map[string]any
if err := json.Unmarshal(data, &m); err != nil {
t.Fatalf("unmarshal: %v", err)
}
if _, ok := m["notes"]; ok {
t.Errorf("empty notes should be omitted, got %s", data)
}
}