Skip to content

Commit fa7c7e3

Browse files
authored
Add badge, change one test to example (#6)
1 parent 1c15f29 commit fa7c7e3

File tree

3 files changed

+30
-15
lines changed

3 files changed

+30
-15
lines changed

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
# template-parse-recursive
2+
3+
[![Go Reference](https://pkg.go.dev/badge/github.com/karelbilek/template-parse-recursive.svg)](https://pkg.go.dev/github.com/karelbilek/template-parse-recursive)
4+
25
Tool for parsing go templates recursively.
36

47
By default, go's template.ParseGlob does not traverse folders recursively, and uses only filename without folder name as a template name.

simple_test.go

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,71 @@
11
package recurparse
22

33
import (
4-
"embed"
54
"html/template"
5+
"os"
66
"strings"
77
"testing"
8+
"testing/fstest"
89
)
910

10-
//go:embed testdata/simple/*.txt
11-
var simple embed.FS
11+
func ExampleHTMLParseFS() {
12+
fsTest := fstest.MapFS{
13+
"data.txt": &fstest.MapFile{
14+
Data: []byte("super simple {{.Foo}}"),
15+
},
16+
"some/deep/file.txt": &fstest.MapFile{
17+
Data: []byte("other simple {{.Foo}}"),
18+
},
19+
}
1220

13-
func TestSimpleNil(t *testing.T) {
1421
tmpl, err := HTMLParseFS(
1522
nil,
16-
simple,
23+
fsTest,
1724
"*.txt",
1825
)
1926
if err != nil {
2027
panic(err)
2128
}
2229

23-
b := &strings.Builder{}
24-
err = tmpl.ExecuteTemplate(b, "testdata/simple/simple.txt", struct{ Foo string }{Foo: "bar"})
30+
err = tmpl.ExecuteTemplate(os.Stdout, "some/deep/file.txt", struct{ Foo string }{Foo: "bar"})
2531
if err != nil {
2632
panic(err)
2733
}
28-
if b.String() != "super simple bar" {
29-
t.Error("not equal super simple bar")
30-
}
3134

35+
// Output: other simple bar
3236
}
3337

3438
func TestSimpleExisting(t *testing.T) {
39+
fsTest := fstest.MapFS{
40+
"data.txt": &fstest.MapFile{
41+
Data: []byte("super simple {{.Foo}}"),
42+
},
43+
"some/deep/file.txt": &fstest.MapFile{
44+
Data: []byte("other simple {{.Foo}}"),
45+
},
46+
}
47+
3548
existing, err := template.New("existing").Parse("existing {{.Foo}}")
3649
if err != nil {
3750
panic(err)
3851
}
3952

4053
tmpl, err := HTMLParseFS(
4154
existing,
42-
simple,
55+
fsTest,
4356
"*.txt",
4457
)
4558
if err != nil {
4659
panic(err)
4760
}
4861

4962
b := &strings.Builder{}
50-
err = tmpl.ExecuteTemplate(b, "testdata/simple/simple.txt", struct{ Foo string }{Foo: "bar"})
63+
err = tmpl.ExecuteTemplate(b, "some/deep/file.txt", struct{ Foo string }{Foo: "bar"})
5164
if err != nil {
5265
panic(err)
5366
}
54-
if b.String() != "super simple bar" {
55-
t.Error("not equal super simple bar")
67+
if b.String() != "other simple bar" {
68+
t.Error("not equal other simple bar")
5669
}
5770

5871
b = &strings.Builder{}

testdata/simple/simple.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

0 commit comments

Comments
 (0)