68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
|
package templates_test
|
||
|
|
||
|
import (
|
||
|
"embed"
|
||
|
"io"
|
||
|
"testing"
|
||
|
"text/template"
|
||
|
|
||
|
"github.com/golangci/golangci-lint/pkg/report"
|
||
|
"github.com/golangci/golangci-lint/pkg/result"
|
||
|
)
|
||
|
|
||
|
var (
|
||
|
//go:embed *
|
||
|
templatesFS embed.FS
|
||
|
templates *template.Template
|
||
|
)
|
||
|
|
||
|
func init() {
|
||
|
if tmpl, err := template.New("issue_templates").ParseFS(templatesFS, "*.tmpl.md"); err != nil {
|
||
|
panic(err)
|
||
|
} else {
|
||
|
templates = tmpl
|
||
|
}
|
||
|
}
|
||
|
|
||
|
func TestRenderTemplates(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
tests := []struct {
|
||
|
name string
|
||
|
templateName string
|
||
|
templateData any
|
||
|
}{
|
||
|
{
|
||
|
name: "Render issue_summary.tmpl.md",
|
||
|
templateName: "issue_summary.tmpl.md",
|
||
|
templateData: map[string]any{
|
||
|
"Report": &report.Data{
|
||
|
Error: "Some error",
|
||
|
},
|
||
|
"Issue": result.Issue{
|
||
|
FromLinter: "Sample",
|
||
|
Text: "Sample description",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
name: "Render issue_comment.tmpl.md",
|
||
|
templateName: "issue_comment.tmpl.md",
|
||
|
templateData: map[string]any{
|
||
|
"Issue": result.Issue{
|
||
|
FromLinter: "Sample",
|
||
|
Text: "Sample description",
|
||
|
},
|
||
|
},
|
||
|
},
|
||
|
}
|
||
|
for _, tc := range tests {
|
||
|
tt := tc
|
||
|
t.Run(tt.name, func(t *testing.T) {
|
||
|
t.Parallel()
|
||
|
if err := templates.ExecuteTemplate(io.Discard, tt.templateName, tt.templateData); err != nil {
|
||
|
t.Errorf("Failed to render emplate: %v", err)
|
||
|
}
|
||
|
})
|
||
|
}
|
||
|
}
|