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  }