From a9c5e8c88df6f3af555b5666b389f32f73be041a Mon Sep 17 00:00:00 2001 From: tjex Date: Sun, 7 Apr 2024 11:12:06 +1000 Subject: [PATCH] add new test case for walk.go - hidden directories and files should be ignored - if the notebook root folder is hidden, this is accepted --- .../.hidden-dir/.hidden-file-in-hidden-dir | 1 + .../.walk-hidden/.hidden-file-at-root | 0 .../paths/testdata/.walk-hidden/Dir3/a.md | 0 .../util/paths/testdata/.walk-hidden/a.md | 0 .../util/paths/testdata/.walk-hidden/b.md | 0 .../testdata/.walk-hidden/dir1 a space/a.md | 0 .../testdata/.walk-hidden/dir1/.ignored.md | 0 .../testdata/.walk-hidden/dir1/.ignored/a.md | 0 .../paths/testdata/.walk-hidden/dir1/a.md | 0 .../paths/testdata/.walk-hidden/dir1/b.md | 0 .../testdata/.walk-hidden/dir1/dir1/a.md | 0 .../testdata/.walk-hidden/dir1/ignored.txt | 0 .../paths/testdata/.walk-hidden/dir2/a.md | 0 internal/util/paths/walk_test.go | 31 ++++++++++++++++++- 14 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 internal/util/paths/testdata/.walk-hidden/.hidden-dir/.hidden-file-in-hidden-dir create mode 100644 internal/util/paths/testdata/.walk-hidden/.hidden-file-at-root create mode 100644 internal/util/paths/testdata/.walk-hidden/Dir3/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/b.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1 a space/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/.ignored.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/.ignored/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/b.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/dir1/a.md create mode 100644 internal/util/paths/testdata/.walk-hidden/dir1/ignored.txt create mode 100644 internal/util/paths/testdata/.walk-hidden/dir2/a.md diff --git a/internal/util/paths/testdata/.walk-hidden/.hidden-dir/.hidden-file-in-hidden-dir b/internal/util/paths/testdata/.walk-hidden/.hidden-dir/.hidden-file-in-hidden-dir new file mode 100644 index 0000000..c9fa0fb --- /dev/null +++ b/internal/util/paths/testdata/.walk-hidden/.hidden-dir/.hidden-file-in-hidden-dir @@ -0,0 +1 @@ +this is a hidden file, and should not be indexed / walked. diff --git a/internal/util/paths/testdata/.walk-hidden/.hidden-file-at-root b/internal/util/paths/testdata/.walk-hidden/.hidden-file-at-root new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/Dir3/a.md b/internal/util/paths/testdata/.walk-hidden/Dir3/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/a.md b/internal/util/paths/testdata/.walk-hidden/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/b.md b/internal/util/paths/testdata/.walk-hidden/b.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1 a space/a.md b/internal/util/paths/testdata/.walk-hidden/dir1 a space/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/.ignored.md b/internal/util/paths/testdata/.walk-hidden/dir1/.ignored.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/.ignored/a.md b/internal/util/paths/testdata/.walk-hidden/dir1/.ignored/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/a.md b/internal/util/paths/testdata/.walk-hidden/dir1/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/b.md b/internal/util/paths/testdata/.walk-hidden/dir1/b.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/dir1/a.md b/internal/util/paths/testdata/.walk-hidden/dir1/dir1/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir1/ignored.txt b/internal/util/paths/testdata/.walk-hidden/dir1/ignored.txt new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/testdata/.walk-hidden/dir2/a.md b/internal/util/paths/testdata/.walk-hidden/dir2/a.md new file mode 100644 index 0000000..e69de29 diff --git a/internal/util/paths/walk_test.go b/internal/util/paths/walk_test.go index 4c13e2c..57f7a29 100644 --- a/internal/util/paths/walk_test.go +++ b/internal/util/paths/walk_test.go @@ -16,7 +16,36 @@ func TestWalk(t *testing.T) { return filepath.Ext(path) != ".md", nil } - notebookRoot := filepath.Base(path) + notebookRoot := filepath.Base(path) + actual := make([]string, 0) + for m := range Walk(path, &util.NullLogger, notebookRoot, shouldIgnore) { + assert.NotNil(t, m.Modified) + actual = append(actual, m.Path) + } + + assert.Equal(t, actual, []string{ + "Dir3/a.md", + "a.md", + "b.md", + "dir1/a.md", + "dir1/b.md", + "dir1/dir1/a.md", + "dir1 a space/a.md", + "dir2/a.md", + }) +} + +// Walk should ignore all hidden files and dirs (prefixed with "."), with +// exception of the notebook's root dir; i.e the root dir is allowed to be +// hidden. +func TestWalkHidden(t *testing.T) { + var path = fixtures.Path(".walk-hidden") + + shouldIgnore := func(path string) (bool, error) { + return filepath.Ext(path) != ".md", nil + } + + notebookRoot := filepath.Base(path) actual := make([]string, 0) for m := range Walk(path, &util.NullLogger, notebookRoot, shouldIgnore) { assert.NotNil(t, m.Modified)