package main import ( "path" "testing" "time" ) func TestTree(t *testing.T) { path := path.Join(t.TempDir(), "index.yaml") tree := NewTree(path) if m, err := tree.Get(); err != nil { t.Fatal(err) } else if m == nil { t.Fatal(m) } if err := tree.Del("id"); err != nil { t.Fatal(err) } if err := tree.Put("id", Branch{PID: "fake"}); err == nil { t.Fatal(err) } if err := tree.Put("id", Branch{}); err != nil { t.Fatal(err) } else if branches, err := tree.Get(); err != nil { t.Fatal(err) } else if branch, ok := branches["id"]; !ok { t.Fatal(err) } else if branch.Title == "" { t.Fatal(branch) } else if time.Since(branch.Updated) > time.Hour { t.Fatal(branch) } else if branch.Deleted { t.Fatal(branch) } if err := tree.Put("id2", Branch{PID: "id"}); err != nil { t.Fatal(err) } if err := tree.Del("id"); err != nil { t.Fatal(err) } else if branches, err := tree.Get(); err != nil { t.Fatal(err) } else if branch, ok := branches["id"]; !ok { t.Fatal(ok) } else if !branch.Deleted { t.Fatal(branch) } }