github.com/JarrahG/buffalocli@v0.0.0-20230801092127-b85bfd5d395a/internal/genny/build/validate_test.go (about) 1 package build 2 3 import ( 4 "testing" 5 6 "github.com/gobuffalo/genny/v2/gentest" 7 "github.com/psanford/memfs" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func Test_TemplateValidator_Good(t *testing.T) { 12 r := require.New(t) 13 14 tvs := []TemplateValidator{PlushValidator} 15 16 goodFS := memfs.New() 17 r.NoError(goodFS.MkdirAll("_ignored", 0o755)) 18 r.NoError(goodFS.WriteFile("_ignored/c.html", []byte("c"), 0o644)) 19 r.NoError(goodFS.WriteFile("a.html", []byte("a"), 0o644)) 20 r.NoError(goodFS.WriteFile("b.html", []byte("b"), 0o644)) 21 22 run := gentest.NewRunner() 23 run.WithRun(ValidateTemplates(goodFS, tvs)) 24 r.NoError(run.Run()) 25 } 26 27 func Test_TemplateValidator_Bad(t *testing.T) { 28 r := require.New(t) 29 30 tvs := []TemplateValidator{PlushValidator} 31 32 badFS := memfs.New() 33 r.NoError(badFS.WriteFile("a.html", []byte("A Hello <%= broken!>%>>"), 0o644)) 34 r.NoError(badFS.WriteFile("b.md", []byte("B Hello <%= broken!>%>>"), 0o644)) 35 36 run := gentest.NewRunner() 37 run.WithRun(ValidateTemplates(badFS, tvs)) 38 39 err := run.Run() 40 r.Error(err) 41 r.Equal("template error in file a.html: line 1: no prefix parse function for > found\ntemplate error in file b.md: line 1: no prefix parse function for > found", err.Error()) 42 }