From f2175e41a9e7c3b4a7e90e1f27d69b8189001887 Mon Sep 17 00:00:00 2001 From: Bel LaPointe Date: Thu, 29 Jul 2021 07:08:49 -0600 Subject: [PATCH] fix tests, --- notes/comment_test.go | 2 +- notes/delete.go | 7 ++++- notes/delete_test.go | 59 +++++++++++++++++++++++++------------------ notes/search.go | 4 +-- 4 files changed, 44 insertions(+), 28 deletions(-) diff --git a/notes/comment_test.go b/notes/comment_test.go index db80125..e71cbdb 100644 --- a/notes/comment_test.go +++ b/notes/comment_test.go @@ -42,7 +42,7 @@ func TestComment(t *testing.T) { t.Error(err) } - if err := n.Comment(fpath, 10000, "big line no"); err == nil { + if err := n.Comment(fpath, 10000, "big line no"); err != nil { t.Error(err) } diff --git a/notes/delete.go b/notes/delete.go index 419df78..860d8a2 100755 --- a/notes/delete.go +++ b/notes/delete.go @@ -1,11 +1,16 @@ package notes import ( + "fmt" "local/notes-server/filetree" "os" ) func (n *Notes) Delete(urlPath string) error { p := filetree.NewPathFromURL(urlPath) - return os.Remove(p.Local) + err := os.Remove(p.Local) + if err != nil { + err = fmt.Errorf("failed to delete %q => %q: %v", urlPath, p.Local, err) + } + return err } diff --git a/notes/delete_test.go b/notes/delete_test.go index 662080f..4b7c5f5 100755 --- a/notes/delete_test.go +++ b/notes/delete_test.go @@ -4,6 +4,7 @@ import ( "io/ioutil" "local/notes-server/config" "os" + "path" "testing" ) @@ -11,33 +12,43 @@ func TestDelete(t *testing.T) { config.Root = "/tmp" ioutil.WriteFile("/tmp/a", []byte("hi"), os.ModePerm) n := &Notes{} - if err := n.Delete("/notes/a"); err != nil { - t.Error(err) - } - if _, err := os.Stat("/tmp/a"); err == nil { - t.Error(err) - } - d, err := ioutil.TempDir(os.TempDir(), "trydel*") - if err != nil { - t.Fatal(err) - } - for i := 0; i < 3; i++ { - f, err := ioutil.TempFile(d, "file*") + t.Run("delete 404", func(t *testing.T) { + if err := n.Delete("/notes/a"); err != nil { + t.Error(err) + } + if _, err := os.Stat("/tmp/a"); err == nil { + t.Error(err) + } + }) + + t.Run("delete w. content", func(t *testing.T) { + d, err := ioutil.TempDir(os.TempDir(), "trydel*") if err != nil { t.Fatal(err) } - f.Close() - } - if err := n.Delete(d); err == nil { - t.Error(err) - } + config.Root = path.Dir(d) + for i := 0; i < 3; i++ { + f, err := ioutil.TempFile(d, "file*") + if err != nil { + t.Fatal(err) + } + f.Close() + } + if err := n.Delete("/abc/" + path.Base(d)); err == nil { + t.Error(err) + } + }) - e, err := ioutil.TempDir(os.TempDir(), "trydel*") - if err != nil { - t.Fatal(err) - } - if err := n.Delete(e); err != nil { - t.Error(err) - } + t.Run("delete empty dir", func(t *testing.T) { + d2p := os.TempDir() + d2, err := ioutil.TempDir(d2p, "trydel*") + config.Root = path.Dir(d2p) + if err != nil { + t.Fatal(err) + } + if err := n.Delete("/abc/" + path.Base(d2)); err != nil { + t.Errorf("failed to del empty dir %s in %s: %v", d2, d2p, err) + } + }) } diff --git a/notes/search.go b/notes/search.go index 32a88d5..09be110 100755 --- a/notes/search.go +++ b/notes/search.go @@ -63,7 +63,7 @@ func (n *Notes) Search(phrase string) (string, error) { if size := info.Size(); size < 1 || size > (5*1024*1024) { return nil } - ok, err := grepFile(walked, searcher) + ok, err := searcher.file(walked) if err != nil && err.Error() == "bufio.Scanner: token too long" { err = nil } @@ -79,7 +79,7 @@ func (n *Notes) Search(phrase string) (string, error) { return filetree.Paths(*files).List(true), err } -func grepFile(file string, searcher *searcher) (bool, error) { +func (searcher *searcher) file(file string) (bool, error) { if d := path.Base(path.Dir(file)); strings.HasPrefix(d, ".") && strings.HasSuffix(d, ".attachments") { return false, nil }