test tree foreach
parent
63caf9ed03
commit
a7c8a0d481
|
|
@ -14,11 +14,11 @@ func NewID(s string) ID {
|
|||
}
|
||||
|
||||
func (id ID) Push(child string) ID {
|
||||
return ID(path.Join(id.String(), child)).withClean()
|
||||
return NewID(path.Join(id.String(), child)).withClean()
|
||||
}
|
||||
|
||||
func (id ID) Pop() ID {
|
||||
pid := path.Clean(ID(path.Dir(id.String())).withClean().String())
|
||||
pid := path.Clean(NewID(path.Dir(id.String())).withClean().String())
|
||||
if strings.HasPrefix(pid, ".") {
|
||||
return ""
|
||||
}
|
||||
|
|
|
|||
|
|
@ -499,7 +499,7 @@ func (server *Server) _apiV0SearchHandler(query string) ([][2]string, error) {
|
|||
result = append(result, [2]string{id.URLSafeString(), title})
|
||||
return nil
|
||||
}); err != nil {
|
||||
return nil, err
|
||||
return nil, fmt.Errorf("failed for each: %v", err)
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
|
|
|||
|
|
@ -31,11 +31,11 @@ func TestServerRoutes(t *testing.T) {
|
|||
ensureAndWrite(server.diskMediaPath("delid"), []byte("hi"))
|
||||
|
||||
tree := server.tree()
|
||||
if err := tree.Put(ID("getfid"), Leaf{Title: "", Content: "getfid body"}); err != nil {
|
||||
if err := tree.Put(NewID("getfid"), Leaf{Title: "", Content: "getfid body"}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tree.Put(ID("putfid"), Leaf{Title: "putfid title", Content: "initial putfid body"})
|
||||
tree.Put(ID("delfid"), Leaf{Title: "delfid title", Content: "delfid body"})
|
||||
tree.Put(NewID("putfid"), Leaf{Title: "putfid title", Content: "initial putfid body"})
|
||||
tree.Put(NewID("delfid"), Leaf{Title: "delfid title", Content: "delfid body"})
|
||||
t.Log(tree.GetRoot())
|
||||
|
||||
ensureAndWrite(path.Join(server.root, "index.html"), []byte("mom"))
|
||||
|
|
@ -151,7 +151,7 @@ func TestServerPutTreeGetFile(t *testing.T) {
|
|||
if err := server.Routes(); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
server.tree().Put(ID("my pid"), Leaf{})
|
||||
server.tree().Put(NewID("my pid"), Leaf{})
|
||||
var id string
|
||||
t.Run("put to create an id", func(t *testing.T) {
|
||||
r := httptest.NewRequest(http.MethodPut, "/my%20pid/my-put-id", strings.NewReader("body"))
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func (branch Branch) forEach(preid ID, foo func(ID, Leaf) error) error {
|
|||
return err
|
||||
}
|
||||
for id, child := range branch.Branches {
|
||||
if err := child.forEach(preid.Push(string(id)), foo); err != nil {
|
||||
if err := child.forEach(id, foo); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,21 +3,44 @@ package main
|
|||
import (
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"path"
|
||||
"strconv"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestTreeDel(t *testing.T) {
|
||||
func TestTreeForEach(t *testing.T) {
|
||||
tree := NewTree(t.TempDir())
|
||||
if err := tree.Put(ID("id"), Leaf{}); err != nil {
|
||||
id := ""
|
||||
for i := 0; i < 5; i++ {
|
||||
id = path.Join(id, strconv.Itoa(i))
|
||||
if err := tree.Put(NewID(id), Leaf{Title: id, Content: id}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
branch, err := tree.GetRoot()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := tree.Put(ID("id/subid"), Leaf{}); err != nil {
|
||||
if err := branch.ForEach(func(id ID, leaf Leaf) error {
|
||||
t.Logf("id=%+v, leaf=%+v", id, leaf)
|
||||
return nil
|
||||
}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestTreeDel(t *testing.T) {
|
||||
tree := NewTree(t.TempDir())
|
||||
if err := tree.Put(NewID("id"), Leaf{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := tree.Put(NewID("id/subid"), Leaf{}); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
if err := tree.Del(ID("id")); err != nil {
|
||||
if err := tree.Del(NewID("id")); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if got, err := tree.Get(ID("id")); err != nil {
|
||||
} else if got, err := tree.Get(NewID("id")); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if !got.Deleted {
|
||||
t.Fatal(got)
|
||||
|
|
@ -45,7 +68,7 @@ func TestTreeCrud(t *testing.T) {
|
|||
t.Fatal(m)
|
||||
}
|
||||
|
||||
if err := tree.Del(ID("id")); err != nil {
|
||||
if err := tree.Del(NewID("id")); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
|
|
@ -54,9 +77,9 @@ func TestTreeCrud(t *testing.T) {
|
|||
Deleted: false,
|
||||
Content: "leaf content",
|
||||
}
|
||||
if err := tree.Put(ID("id"), want); err != nil {
|
||||
if err := tree.Put(NewID("id"), want); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if l, err := tree.Get(ID("id")); err != nil {
|
||||
} else if l, err := tree.Get(NewID("id")); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if l != want {
|
||||
t.Fatal(want, l)
|
||||
|
|
|
|||
Loading…
Reference in New Issue