From 086a0cc0eb75c0c3a15cf6a715427df1e2d589a2 Mon Sep 17 00:00:00 2001 From: ewy Date: Wed, 22 Apr 2026 20:44:06 +0200 Subject: slowly working on that test coverage --- crawl/crawl_test.go | 39 ++++++++++++++++++++++++++++++++++++--- 1 file changed, 36 insertions(+), 3 deletions(-) (limited to 'crawl/crawl_test.go') diff --git a/crawl/crawl_test.go b/crawl/crawl_test.go index 88b70f1..27fc0e8 100644 --- a/crawl/crawl_test.go +++ b/crawl/crawl_test.go @@ -1,8 +1,12 @@ +//go:build test + package crawl import ( "github.com/stretchr/testify/assert" - "io/fs" + "os" + "path/filepath" + "strings" "testing" ) @@ -53,6 +57,35 @@ func TestLocations_HighestFirst(t *testing.T) { assert.Equal(t, locs[0], "/one/two/three") } -func Test(t *testing.T) { - assert.True(t, fs.ValidPath("asdf/hjkl")) +func TestRichLocations(t *testing.T) { + dir := t.TempDir() + targetPath := filepath.Join(dir, "target") + linkPath := filepath.Join(dir, "link") + + innerPath := filepath.Join(targetPath, "inner") + innerLinkPath := filepath.Join(linkPath, "inner") + err := os.Mkdir(targetPath, 0777) + assert.NoError(t, err) + err = os.Symlink(targetPath, linkPath) + assert.NoError(t, err) + err = os.Mkdir(innerPath, 0777) + result := RichLocations(innerLinkPath) + assert.NotNil(t, result) + var hasLink, hasTarget = false, false + for _, e := range result { + if strings.HasSuffix(e, "target/inner") { + hasTarget = true + continue + } + if strings.HasSuffix(e, "link/inner") { + hasLink = true + continue + } + } + if !hasLink { + t.Fatal("evaluated link subdirectories were not included") + } + if !hasTarget { + t.Fatal("original target subdirectories were not included") + } } -- cgit v1.3.1