test get root w deleted
parent
2a278a33e0
commit
c4b63825aa
|
|
@ -67,21 +67,21 @@ func (tree Tree) Find(baseId string) ([]string, bool) {
|
|||
}
|
||||
|
||||
func (tree Tree) GetRootMeta() (Branch, error) {
|
||||
return tree.getRoot(false)
|
||||
return tree.getRoot(false, false)
|
||||
}
|
||||
|
||||
func (tree Tree) GetRoot() (Branch, error) {
|
||||
if !tree.cachedRoot.IsZero() {
|
||||
return tree.cachedRoot, nil
|
||||
}
|
||||
got, err := tree.getRoot(true)
|
||||
got, err := tree.getRoot(true, false)
|
||||
if err == nil {
|
||||
tree.cachedRoot = got
|
||||
}
|
||||
return got, err
|
||||
}
|
||||
|
||||
func (tree Tree) getRoot(withContent bool) (Branch, error) {
|
||||
func (tree Tree) getRoot(withContent, withDeleted bool) (Branch, error) {
|
||||
m := Branch{Branches: map[string]Branch{}}
|
||||
entries, err := os.ReadDir(tree.root)
|
||||
if os.IsNotExist(err) {
|
||||
|
|
@ -100,13 +100,14 @@ func (tree Tree) getRoot(withContent bool) (Branch, error) {
|
|||
if !withContent {
|
||||
m.Leaf.Content = ""
|
||||
}
|
||||
if m.Leaf.Deleted {
|
||||
if m.Leaf.Deleted && !withDeleted {
|
||||
return m, nil
|
||||
}
|
||||
} else if entry.IsDir() {
|
||||
if branch, err := tree.WithRoot(path.Join(tree.root, entry.Name())).getRoot(withContent); err != nil {
|
||||
subtree := tree.WithRoot(path.Join(tree.root, entry.Name()))
|
||||
if branch, err := subtree.getRoot(withContent, withDeleted); err != nil {
|
||||
return Branch{}, err
|
||||
} else if !branch.Leaf.Deleted && !branch.IsZero() {
|
||||
} else if !branch.IsZero() && (!branch.Leaf.Deleted || withDeleted) {
|
||||
m.Branches[entry.Name()] = branch
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,7 +26,13 @@ func TestTreeDel(t *testing.T) {
|
|||
|
||||
if root, err := tree.GetRoot(); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if len(root.Branches) > 0 {
|
||||
} else if len(root.Branches) != 0 {
|
||||
t.Fatal(root.Branches)
|
||||
}
|
||||
|
||||
if root, err := tree.getRoot(false, true); err != nil {
|
||||
t.Fatal(err)
|
||||
} else if len(root.Branches) != 1 {
|
||||
t.Fatal(root.Branches)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue