diff --git a/director-resume_test.go b/director-resume_test.go index e3eedb7..6e38a42 100644 --- a/director-resume_test.go +++ b/director-resume_test.go @@ -2,20 +2,18 @@ package tv_test import ( "context" - "os" "sync" - "testing/fstest" "github.com/fortytw2/leaktest" . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/cycle" "github.com/snivilised/traverse/enums" - lab "github.com/snivilised/traverse/internal/laboratory" "github.com/snivilised/traverse/internal/services" "github.com/snivilised/traverse/locale" "github.com/snivilised/traverse/pref" @@ -23,7 +21,7 @@ import ( var _ = Describe("Director(Resume)", Ordered, func() { var ( - emptyFS *lab.TestTraverseFS + fS *luna.MemFS restore pref.Option ) @@ -33,13 +31,7 @@ var _ = Describe("Director(Resume)", Ordered, func() { return nil } - emptyFS = &lab.TestTraverseFS{ - MapFS: fstest.MapFS{ - ".": &fstest.MapFile{ - Mode: os.ModeDir, - }, - }, - } + fS = luna.NewMemFS() Expect(li18ngo.Use( func(o *li18ngo.UseOptions) { @@ -70,7 +62,7 @@ var _ = Describe("Director(Resume)", Ordered, func() { Subscription: tv.SubscribeFiles, Handler: noOpHandler, GetTraverseFS: func(_ string) tv.TraverseFS { - return emptyFS + return fS }, }, From: RestorePath, diff --git a/go.mod b/go.mod index 084f232..1fb56ce 100644 --- a/go.mod +++ b/go.mod @@ -18,7 +18,7 @@ require ( github.com/pkg/errors v0.9.1 github.com/rogpeppe/go-internal v1.13.1 // indirect github.com/snivilised/li18ngo v0.1.7 - github.com/snivilised/nefilim v0.1.4 + github.com/snivilised/nefilim v0.1.5 github.com/snivilised/pants v0.1.2 golang.org/x/net v0.30.0 // indirect golang.org/x/sys v0.26.0 // indirect diff --git a/go.sum b/go.sum index 2018215..ac54834 100644 --- a/go.sum +++ b/go.sum @@ -32,6 +32,8 @@ github.com/snivilised/li18ngo v0.1.7 h1:XRYpmP7jSAxzRyg5WH0PViFb9ycWGFcDkQQqd2Gs github.com/snivilised/li18ngo v0.1.7/go.mod h1:NVOexqt/aIhnenNPQDqbJchLNte92io87j5o2l+HNqs= github.com/snivilised/nefilim v0.1.4 h1:bhiENDl/T6ZQO146eF8UnxtXLQenSzEyjwuTeWScImw= github.com/snivilised/nefilim v0.1.4/go.mod h1:+4/hKxgfvE8eNjLMJC+3ropEZSQuiR/NqfPtIuw7ZMw= +github.com/snivilised/nefilim v0.1.5 h1:onBndcSMV99oZtqS+r1R+r+IAxoylipQHu3kaKhKGgM= +github.com/snivilised/nefilim v0.1.5/go.mod h1:+4/hKxgfvE8eNjLMJC+3ropEZSQuiR/NqfPtIuw7ZMw= github.com/snivilised/pants v0.1.2 h1:6Abj02gV5rFYyKfCsmeEiOi1pLdRyITKUY5oDoRgYuU= github.com/snivilised/pants v0.1.2/go.mod h1:BOZa24yLxVjjnTCFWQeCzUWL8eK4TLtXtkz3pMdEFQM= github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= diff --git a/internal/feat/hiber/hibernate_test.go b/internal/feat/hiber/hibernate_test.go index b991b52..776095a 100644 --- a/internal/feat/hiber/hibernate_test.go +++ b/internal/feat/hiber/hibernate_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" @@ -18,7 +19,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, "edm", ) Expect(root).NotTo(BeEmpty()) @@ -55,7 +56,7 @@ var _ = Describe("feature", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -132,7 +133,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: client, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -158,7 +159,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/feat/hiber/with-filter_test.go b/internal/feat/hiber/with-filter_test.go index d6b03cd..8c42abc 100644 --- a/internal/feat/hiber/with-filter_test.go +++ b/internal/feat/hiber/with-filter_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" @@ -18,7 +19,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, "edm", ) Expect(root).NotTo(BeEmpty()) @@ -47,7 +48,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: entry.Callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, @@ -96,7 +97,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Path: path, Result: result, Err: err, diff --git a/internal/feat/sampling/navigator-sample_test.go b/internal/feat/sampling/navigator-sample_test.go index 6dc7ec4..74e39c0 100644 --- a/internal/feat/sampling/navigator-sample_test.go +++ b/internal/feat/sampling/navigator-sample_test.go @@ -6,6 +6,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -18,7 +19,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, "edm", ) Expect(root).NotTo(BeEmpty()) @@ -54,7 +55,7 @@ var _ = Describe("feature", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -112,7 +113,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -153,7 +154,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-custom_test.go b/internal/filtering/filter-custom_test.go index b8f3452..2ab8d90 100644 --- a/internal/filtering/filter-custom_test.go +++ b/internal/filtering/filter-custom_test.go @@ -6,6 +6,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/enums" lab "github.com/snivilised/traverse/internal/laboratory" @@ -16,7 +17,7 @@ import ( var _ = Describe("NavigatorFilterCustom", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -25,7 +26,7 @@ var _ = Describe("NavigatorFilterCustom", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -72,7 +73,7 @@ var _ = Describe("NavigatorFilterCustom", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -84,7 +85,7 @@ var _ = Describe("NavigatorFilterCustom", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-extended-glob_test.go b/internal/filtering/filter-extended-glob_test.go index a45ff49..1291e85 100644 --- a/internal/filtering/filter-extended-glob_test.go +++ b/internal/filtering/filter-extended-glob_test.go @@ -6,6 +6,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -17,7 +18,7 @@ import ( var _ = Describe("filtering", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -26,7 +27,7 @@ var _ = Describe("filtering", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, "rock", ) Expect(root).NotTo(BeEmpty()) @@ -62,7 +63,7 @@ var _ = Describe("filtering", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -127,7 +128,7 @@ var _ = Describe("filtering", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -137,7 +138,7 @@ var _ = Describe("filtering", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-glob_test.go b/internal/filtering/filter-glob_test.go index 07d1677..fb1c31c 100644 --- a/internal/filtering/filter-glob_test.go +++ b/internal/filtering/filter-glob_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -18,7 +19,7 @@ import ( var _ = Describe("NavigatorFilterGlob", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("NavigatorFilterGlob", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -63,7 +64,7 @@ var _ = Describe("NavigatorFilterGlob", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -128,7 +129,7 @@ var _ = Describe("NavigatorFilterGlob", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -138,7 +139,7 @@ var _ = Describe("NavigatorFilterGlob", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-hybrid_test.go b/internal/filtering/filter-hybrid_test.go index 93c99b0..55be050 100644 --- a/internal/filtering/filter-hybrid_test.go +++ b/internal/filtering/filter-hybrid_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -18,7 +19,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -84,7 +85,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -94,7 +95,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-poly_test.go b/internal/filtering/filter-poly_test.go index 71107f4..4a1e99c 100644 --- a/internal/filtering/filter-poly_test.go +++ b/internal/filtering/filter-poly_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -19,7 +20,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -28,7 +29,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -75,7 +76,7 @@ var _ = Describe("feature", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -139,7 +140,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -149,7 +150,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/filtering/filter-regex_test.go b/internal/filtering/filter-regex_test.go index 7b5b804..5d103ad 100644 --- a/internal/filtering/filter-regex_test.go +++ b/internal/filtering/filter-regex_test.go @@ -6,6 +6,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -17,7 +18,7 @@ import ( var _ = Describe("feature", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -26,7 +27,7 @@ var _ = Describe("feature", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, "PROGRESSIVE-HOUSE", ) Expect(root).NotTo(BeEmpty()) @@ -62,7 +63,7 @@ var _ = Describe("feature", Ordered, func() { return nil }, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -127,7 +128,7 @@ var _ = Describe("feature", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -137,7 +138,7 @@ var _ = Describe("feature", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(&entry.NaviTE, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/kernel/navigator-folders-with-files_test.go b/internal/kernel/navigator-folders-with-files_test.go index f798479..d1215a3 100644 --- a/internal/kernel/navigator-folders-with-files_test.go +++ b/internal/kernel/navigator-folders-with-files_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/enums" lab "github.com/snivilised/traverse/internal/laboratory" @@ -16,7 +17,7 @@ import ( var _ = Describe("NavigatorFoldersWithFiles", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -25,7 +26,7 @@ var _ = Describe("NavigatorFoldersWithFiles", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -61,7 +62,7 @@ var _ = Describe("NavigatorFoldersWithFiles", Ordered, func() { Subscription: entry.Subscription, Handler: once, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), diff --git a/internal/kernel/navigator-simple_test.go b/internal/kernel/navigator-simple_test.go index b2d2e10..3f3f9dd 100644 --- a/internal/kernel/navigator-simple_test.go +++ b/internal/kernel/navigator-simple_test.go @@ -8,6 +8,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/enums" lab "github.com/snivilised/traverse/internal/laboratory" @@ -18,7 +19,7 @@ import ( var _ = Describe("NavigatorUniversal", Ordered, func() { var ( - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) @@ -27,7 +28,7 @@ var _ = Describe("NavigatorUniversal", Ordered, func() { verbose = false ) - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, filepath.Join("rock", "metal"), ) @@ -72,7 +73,7 @@ var _ = Describe("NavigatorUniversal", Ordered, func() { Subscription: entry.Subscription, Handler: callback, GetTraverseFS: func(_ string) tv.TraverseFS { - return FS + return fS }, }, tv.WithOnBegin(lab.Begin("🛡️")), @@ -82,7 +83,7 @@ var _ = Describe("NavigatorUniversal", Ordered, func() { )).Navigate(ctx) lab.AssertNavigation(entry, &lab.TestOptions{ - FS: FS, + FS: fS, Recording: recording, Path: path, Result: result, diff --git a/internal/laboratory/assert.go b/internal/laboratory/assert.go index 0fcd8b5..d3329c5 100644 --- a/internal/laboratory/assert.go +++ b/internal/laboratory/assert.go @@ -6,13 +6,14 @@ import ( "testing/fstest" . "github.com/onsi/gomega" //nolint:revive,stylecheck // ok + "github.com/snivilised/nefilim/luna" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" "github.com/snivilised/traverse/internal/third/lo" ) type TestOptions struct { - FS *TestTraverseFS + FS *luna.MemFS Recording RecordingMap Path string Result core.TraverseResult diff --git a/internal/laboratory/directory-tree-builder.go b/internal/laboratory/directory-tree-builder.go index 9639660..49e453c 100644 --- a/internal/laboratory/directory-tree-builder.go +++ b/internal/laboratory/directory-tree-builder.go @@ -9,6 +9,7 @@ import ( "strings" "testing/fstest" + "github.com/snivilised/nefilim/luna" "github.com/snivilised/traverse/collections" "github.com/snivilised/traverse/internal/third/lo" ) @@ -19,10 +20,8 @@ const ( doWrite = true ) -func Musico(verbose bool, portions ...string) (fS *TestTraverseFS, root string) { - fS = &TestTraverseFS{ - fstest.MapFS{}, - } +func Musico(verbose bool, portions ...string) (fS *luna.MemFS, root string) { + fS = luna.NewMemFS() root = Provision( NewMemWriteProvider(fS, os.ReadFile, portions...), @@ -75,7 +74,7 @@ func ensure(index string, provider *IOProvider, verbose bool) error { return builder.walk() } -func NewMemWriteProvider(fS *TestTraverseFS, +func NewMemWriteProvider(fS *luna.MemFS, indexReader readFile, portions ...string, ) *IOProvider { diff --git a/internal/laboratory/test-traverse-fs.go b/internal/laboratory/test-traverse-fs.go deleted file mode 100644 index 1abb113..0000000 --- a/internal/laboratory/test-traverse-fs.go +++ /dev/null @@ -1,109 +0,0 @@ -package lab - -import ( - "io/fs" - "os" - "strings" - "testing/fstest" - - nef "github.com/snivilised/nefilim" - "github.com/snivilised/traverse/internal/third/lo" -) - -type testMapFile struct { - f fstest.MapFile -} - -type TestTraverseFS struct { - fstest.MapFS -} - -func (f *TestTraverseFS) FileExists(name string) bool { - if mapFile, found := f.MapFS[name]; found && !mapFile.Mode.IsDir() { - return true - } - - return false -} - -func (f *TestTraverseFS) DirectoryExists(name string) bool { - if mapFile, found := f.MapFS[name]; found && mapFile.Mode.IsDir() { - return true - } - - return false -} - -func (f *TestTraverseFS) Create(name string) (*os.File, error) { - if _, err := f.Stat(name); err == nil { - return nil, fs.ErrExist - } - - file := &fstest.MapFile{ - Mode: Perms.File, - } - - f.MapFS[name] = file - // TODO: this needs a resolution using a file interface - // rather than using os.File which is a struct not an - // interface - dummy := &os.File{} - - return dummy, nil -} - -func (f *TestTraverseFS) MakeDir(name string, perm os.FileMode) error { - if !fs.ValidPath(name) { - return nef.NewInvalidPathError("MakeDir", name) - } - - if _, found := f.MapFS[name]; !found { - f.MapFS[name] = &fstest.MapFile{ - Mode: perm | os.ModeDir, - } - } - - return nil -} - -func (f *TestTraverseFS) MakeDirAll(name string, perm os.FileMode) error { - if !fs.ValidPath(name) { - return nef.NewInvalidPathError("MakeDir", name) - } - - segments := strings.Split(name, "/") - - _ = lo.Reduce(segments, - func(acc []string, s string, _ int) []string { - acc = append(acc, s) - path := strings.Join(acc, "/") - - if _, found := f.MapFS[path]; !found { - f.MapFS[path] = &fstest.MapFile{ - Mode: perm | os.ModeDir, - } - } - - return acc - }, []string{}, - ) - - return nil -} - -func (f *TestTraverseFS) WriteFile(name string, data []byte, perm os.FileMode) error { - if _, err := f.Stat(name); err == nil { - return fs.ErrExist - } - - f.MapFS[name] = &fstest.MapFile{ - Data: data, - Mode: perm, - } - - return nil -} - -func (f *TestTraverseFS) Ensure(_ nef.PathAs) (string, error) { - panic("NOT-IMPL: TestTraverseFS.Ensure") -} diff --git a/internal/persist/convert-json_test.go b/internal/persist/convert-json_test.go index 8e2fc83..a8591ff 100644 --- a/internal/persist/convert-json_test.go +++ b/internal/persist/convert-json_test.go @@ -7,6 +7,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" lab "github.com/snivilised/traverse/internal/laboratory" "github.com/snivilised/traverse/internal/opts" @@ -24,7 +25,7 @@ var _ = Describe("Convert Options via JSON", Ordered, func() { }) BeforeEach(func() { - FS = &lab.TestTraverseFS{ + FS = &luna.MemFS{ MapFS: fstest.MapFS{ home: &fstest.MapFile{ Mode: os.ModeDir, diff --git a/internal/persist/marshaler-filters_test.go b/internal/persist/marshaler-filters_test.go index e9b7215..36953b3 100644 --- a/internal/persist/marshaler-filters_test.go +++ b/internal/persist/marshaler-filters_test.go @@ -9,6 +9,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -164,7 +165,7 @@ var _ = Describe("Marshaler", Ordered, func() { }) BeforeEach(func() { - FS = &lab.TestTraverseFS{ + FS = &luna.MemFS{ MapFS: fstest.MapFS{ home: &fstest.MapFile{ Mode: os.ModeDir, diff --git a/internal/persist/marshaler_test.go b/internal/persist/marshaler_test.go index 9cb8f9b..8b5b590 100644 --- a/internal/persist/marshaler_test.go +++ b/internal/persist/marshaler_test.go @@ -10,6 +10,7 @@ import ( . "github.com/onsi/gomega" //nolint:revive // ok "github.com/snivilised/li18ngo" + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" "github.com/snivilised/traverse/enums" @@ -141,7 +142,7 @@ var _ = Describe("Marshaler", Ordered, func() { }) BeforeEach(func() { - FS = &lab.TestTraverseFS{ + FS = &luna.MemFS{ MapFS: fstest.MapFS{ home: &fstest.MapFile{ Mode: os.ModeDir, diff --git a/tapable/tapable_test.go b/tapable/tapable_test.go index 2db827a..03c6650 100644 --- a/tapable/tapable_test.go +++ b/tapable/tapable_test.go @@ -6,6 +6,7 @@ import ( . "github.com/onsi/ginkgo/v2" //nolint:revive // ok . "github.com/onsi/gomega" //nolint:revive // ok + "github.com/snivilised/nefilim/luna" tv "github.com/snivilised/traverse" "github.com/snivilised/traverse/core" lab "github.com/snivilised/traverse/internal/laboratory" @@ -34,12 +35,12 @@ var _ = Describe("Tapable", Ordered, func() { invoked bool o *pref.Options err error - FS *lab.TestTraverseFS + fS *luna.MemFS root string ) BeforeAll(func() { - FS, root = lab.Musico(verbose, + fS, root = lab.Musico(verbose, lab.Static.RetroWave, ) Expect(root).NotTo(BeEmpty()) @@ -160,7 +161,7 @@ var _ = Describe("Tapable", Ordered, func() { }, ) - result, err := o.Hooks.ReadDirectory.Invoke()(FS, path) + result, err := o.Hooks.ReadDirectory.Invoke()(fS, path) Expect(err).To(Succeed()) Expect(result).To( lab.HaveDirectoryContents( @@ -189,7 +190,7 @@ var _ = Describe("Tapable", Ordered, func() { }, ) - result, e := o.Hooks.ReadDirectory.Invoke()(FS, path) + result, e := o.Hooks.ReadDirectory.Invoke()(fS, path) Expect(e).To(Succeed()) Expect(result).To( lab.HaveDirectoryContents( @@ -234,7 +235,7 @@ var _ = Describe("Tapable", Ordered, func() { return result, err }, ) - _, err := o.Hooks.QueryStatus.Invoke()(FS, path) + _, err := o.Hooks.QueryStatus.Invoke()(fS, path) Expect(err).To(Succeed()) Expect(invoked).To(BeTrue(), "QueryStatus hook not invoked") @@ -259,7 +260,7 @@ var _ = Describe("Tapable", Ordered, func() { return result, err }, ) - _, e := o.Hooks.QueryStatus.Invoke()(FS, path) + _, e := o.Hooks.QueryStatus.Invoke()(fS, path) Expect(e).To(Succeed()) Expect(invoked).To(BeTrue(), "QueryStatus hook not broadcasted") @@ -275,8 +276,8 @@ var _ = Describe("Tapable", Ordered, func() { return nil, nil }, ) - _, _ = o.Hooks.QueryStatus.Default()(FS, root) - _, _ = o.Hooks.QueryStatus.Invoke()(FS, root) + _, _ = o.Hooks.QueryStatus.Default()(fS, root) + _, _ = o.Hooks.QueryStatus.Invoke()(fS, root) Expect(invoked).To(BeTrue(), "QueryStatus hook not invoked") })