Skip to content

Commit 7245492

Browse files
authored
fix: apply templates only when requested (#341) (#342)
1 parent 58e00db commit 7245492

File tree

1 file changed

+9
-18
lines changed

1 file changed

+9
-18
lines changed

testfixtures.go

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,8 @@ func (l *Loader) fixturesFromDir(dir string) ([]*fixtureFile, error) {
676676
if err != nil {
677677
return nil, fmt.Errorf(`testfixtures: could not read file "%s": %w`, fixture.path, err)
678678
}
679-
if err := l.processFileTemplate(fixture); err != nil {
679+
fixture.content, err = l.preProcessContent(fixture.fileName, fixture.content)
680+
if err != nil {
680681
return nil, err
681682
}
682683
files = append(files, fixture)
@@ -700,7 +701,8 @@ func (l *Loader) fixturesFromFiles(fileNames ...string) ([]*fixtureFile, error)
700701
if err != nil {
701702
return nil, fmt.Errorf(`testfixtures: could not read file "%s": %w`, fixture.path, err)
702703
}
703-
if err := l.processFileTemplate(fixture); err != nil {
704+
fixture.content, err = l.preProcessContent(fixture.fileName, fixture.content)
705+
if err != nil {
704706
return nil, err
705707
}
706708
fixtureFiles = append(fixtureFiles, fixture)
@@ -751,7 +753,7 @@ func (l *Loader) fixturesFromFilesMultiTables(fileNames ...string) ([]*fixtureFi
751753
return nil, fmt.Errorf(`testfixtures: could not read file "%s": %w`, f, err)
752754
}
753755

754-
content, err = l.processTemplate(content)
756+
content, err = l.preProcessContent(f, content)
755757
if err != nil {
756758
return nil, err
757759
}
@@ -787,33 +789,22 @@ func (l *Loader) fixturesFromFilesMultiTables(fileNames ...string) ([]*fixtureFi
787789
return fixtureFiles, nil
788790
}
789791

790-
func (l *Loader) processFileTemplate(f *fixtureFile) error {
792+
func (l *Loader) preProcessContent(name string, content []byte) ([]byte, error) {
791793
if !l.template {
792-
return nil
793-
}
794-
795-
var err error
796-
f.content, err = l.processTemplate(f.content)
797-
if err != nil {
798-
return fmt.Errorf(`textfixtures: error on parsing template in %s: %w`, f.fileName, err)
794+
return content, nil
799795
}
800-
801-
return nil
802-
}
803-
804-
func (l *Loader) processTemplate(content []byte) ([]byte, error) {
805796
t := template.New("").
806797
Funcs(l.templateFuncs).
807798
Delims(l.templateLeftDelim, l.templateRightDelim).
808799
Option(l.templateOptions...)
809800
t, err := t.Parse(string(content))
810801
if err != nil {
811-
return nil, err
802+
return nil, fmt.Errorf(`textfixtures: error on parsing template in %s: %w`, name, err)
812803
}
813804

814805
var buffer bytes.Buffer
815806
if err := t.Execute(&buffer, l.templateData); err != nil {
816-
return nil, err
807+
return nil, fmt.Errorf(`textfixtures: error on execute template in %s: %w`, name, err)
817808
}
818809

819810
return buffer.Bytes(), nil

0 commit comments

Comments
 (0)