From 5e05dc9fb9ad3ada91466da64d20ffbf063ca93d Mon Sep 17 00:00:00 2001 From: Dave Henderson Date: Sat, 4 Feb 2023 15:03:03 -0500 Subject: replace afero module Signed-off-by: Dave Henderson --- template_windows_test.go | 52 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 36 insertions(+), 16 deletions(-) (limited to 'template_windows_test.go') diff --git a/template_windows_test.go b/template_windows_test.go index 587b8b1c..c5c977aa 100644 --- a/template_windows_test.go +++ b/template_windows_test.go @@ -1,49 +1,69 @@ //go:build windows +// +build windows package gomplate import ( "context" + "io/fs" + "os" "testing" + "github.com/hack-pad/hackpadfs" + "github.com/hack-pad/hackpadfs/mem" "github.com/hairyhenderson/gomplate/v4/internal/config" - "github.com/spf13/afero" + "github.com/hairyhenderson/gomplate/v4/internal/datafs" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) -func TestWalkDir(t *testing.T) { - ctx := context.Background() - origfs := aferoFS - defer func() { aferoFS = origfs }() - aferoFS = afero.NewMemMapFs() +func TestWalkDir_Windows(t *testing.T) { + wd, _ := os.Getwd() + t.Cleanup(func() { + _ = os.Chdir(wd) + }) + _ = os.Chdir("C:/") + + memfs, _ := mem.NewFS() + fsys := datafs.WrapWdFS(memfs) + + ctx := datafs.ContextWithFSProvider(context.Background(), datafs.WrappedFSProvider(fsys, "file")) cfg := &config.Config{} - _, err := walkDir(ctx, cfg, `C:\indir`, simpleNamer(`C:\outdir`), nil, 0, false) + _, err := walkDir(ctx, cfg, `C:\indir`, simpleNamer(`C:/outdir`), nil, 0, false) assert.Error(t, err) - _ = aferoFS.MkdirAll(`C:\indir\one`, 0777) - _ = aferoFS.MkdirAll(`C:\indir\two`, 0777) - afero.WriteFile(aferoFS, `C:\indir\one\foo`, []byte("foo"), 0644) - afero.WriteFile(aferoFS, `C:\indir\one\bar`, []byte("bar"), 0644) - afero.WriteFile(aferoFS, `C:\indir\two\baz`, []byte("baz"), 0644) + err = hackpadfs.MkdirAll(fsys, `C:\indir\one`, 0o777) + require.NoError(t, err) + err = hackpadfs.MkdirAll(fsys, `C:\indir\two`, 0o777) + require.NoError(t, err) + err = hackpadfs.WriteFullFile(fsys, `C:\indir\one\foo`, []byte("foo"), 0o644) + require.NoError(t, err) + err = hackpadfs.WriteFullFile(fsys, `C:\indir\one\bar`, []byte("bar"), 0o644) + require.NoError(t, err) + err = hackpadfs.WriteFullFile(fsys, `C:\indir\two\baz`, []byte("baz"), 0o644) + require.NoError(t, err) - templates, err := walkDir(ctx, cfg, `C:\indir`, simpleNamer(`C:\outdir`), []string{`*\two`}, 0, false) + fi, err := fs.Stat(fsys, `C:\indir\two\baz`) + require.NoError(t, err) + assert.Equal(t, "baz", fi.Name()) + templates, err := walkDir(ctx, cfg, `C:\indir`, simpleNamer(`C:/outdir`), []string{`*\two`}, 0, false) require.NoError(t, err) + expected := []Template{ { - Name: `C:\indir\one\bar`, + Name: `C:/indir/one/bar`, Text: "bar", }, { - Name: `C:\indir\one\foo`, + Name: `C:/indir/one/foo`, Text: "foo", }, } - assert.Len(t, templates, 2) + require.Len(t, templates, 2) for i, tmpl := range templates { assert.Equal(t, expected[i].Name, tmpl.Name) assert.Equal(t, expected[i].Text, tmpl.Text) -- cgit v1.2.3