github.com/hairyhenderson/gomplate/v4@v4.0.0-pre-2.0.20240520121557-362f058f0c93/template_unix_test.go (about) 1 //go:build !windows 2 3 package gomplate 4 5 import ( 6 "context" 7 "testing" 8 9 "github.com/hack-pad/hackpadfs" 10 "github.com/hack-pad/hackpadfs/mem" 11 "github.com/hairyhenderson/gomplate/v4/internal/config" 12 "github.com/hairyhenderson/gomplate/v4/internal/datafs" 13 14 "github.com/stretchr/testify/assert" 15 "github.com/stretchr/testify/require" 16 ) 17 18 func TestWalkDir_UNIX(t *testing.T) { 19 memfs, _ := mem.NewFS() 20 fsys := datafs.WrapWdFS(memfs) 21 22 ctx := datafs.ContextWithFSProvider(context.Background(), datafs.WrappedFSProvider(fsys, "file")) 23 24 cfg := &config.Config{} 25 26 _, err := walkDir(ctx, cfg, "/indir", simpleNamer("/outdir"), nil, nil, 0, false) 27 require.Error(t, err) 28 29 err = hackpadfs.MkdirAll(fsys, "/indir/one", 0o777) 30 require.NoError(t, err) 31 err = hackpadfs.MkdirAll(fsys, "/indir/two", 0o777) 32 require.NoError(t, err) 33 err = hackpadfs.WriteFullFile(fsys, "/indir/one/foo", []byte("foo"), 0o644) 34 require.NoError(t, err) 35 err = hackpadfs.WriteFullFile(fsys, "/indir/one/bar", []byte("bar"), 0o644) 36 require.NoError(t, err) 37 err = hackpadfs.WriteFullFile(fsys, "/indir/two/baz", []byte("baz"), 0o644) 38 require.NoError(t, err) 39 40 templates, err := walkDir(ctx, cfg, "/indir", simpleNamer("/outdir"), []string{"*/two"}, []string{}, 0, false) 41 require.NoError(t, err) 42 43 expected := []Template{ 44 { 45 Name: "/indir/one/bar", 46 Text: "bar", 47 }, 48 { 49 Name: "/indir/one/foo", 50 Text: "foo", 51 }, 52 } 53 assert.Len(t, templates, 2) 54 for i, tmpl := range templates { 55 assert.Equal(t, expected[i].Name, tmpl.Name) 56 assert.Equal(t, expected[i].Text, tmpl.Text) 57 } 58 }