You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package templtest
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.buddy.wtf/lib/tmpl"
|
|
"github.com/google/go-cmp/cmp"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestList(t *testing.T) {
|
|
type testcase struct {
|
|
Name string
|
|
tmpl.Templates
|
|
Expected []string
|
|
Err error
|
|
}
|
|
|
|
tt := []testcase{
|
|
{
|
|
Name: "list all files on empty config ",
|
|
Templates: tmpl.Templates{FS: data},
|
|
Expected: []string{
|
|
"data/broken.invalid",
|
|
"data/broken.template",
|
|
"data/first/1/bar.txt.tmpl",
|
|
"data/first/1/foo.txt.tmpl",
|
|
"data/first/2/item.txt.tmpl",
|
|
"data/first/2/list.txt.tmpl",
|
|
"data/first/index.txt.tmpl",
|
|
"data/first/static.txt",
|
|
"data/index.html.tmpl",
|
|
"data/index.txt.tmpl",
|
|
"data/second/1/list.html.tmpl",
|
|
"data/second/1/single.html.tmpl",
|
|
"data/second/index.html.tmpl",
|
|
"data/second/static.txt",
|
|
},
|
|
},
|
|
|
|
{
|
|
Name: "only list templates with matching suffix with suffix not in name",
|
|
Templates: tmpl.Templates{
|
|
FS: data,
|
|
Root: "data",
|
|
Suffix: "tmpl",
|
|
},
|
|
Expected: []string{
|
|
"first/1/bar.txt",
|
|
"first/1/foo.txt",
|
|
"first/2/item.txt",
|
|
"first/2/list.txt",
|
|
"first/index.txt",
|
|
"index.html",
|
|
"index.txt",
|
|
"second/1/list.html",
|
|
"second/1/single.html",
|
|
"second/index.html",
|
|
},
|
|
},
|
|
}
|
|
|
|
for _, tc := range tt {
|
|
tc := tc
|
|
t.Run(tc.Name, func(t *testing.T) {
|
|
t.Parallel()
|
|
a := assert.New(t)
|
|
actual, err := tc.Templates.List()
|
|
errorIs(a, err, tc.Err)
|
|
a.Empty(cmp.Diff(tc.Expected, actual))
|
|
})
|
|
}
|
|
}
|