fix: support Gitea 28.0.0 mail templates
This commit is contained in:
1 parent
ffb674669b
commit
92d2ba9889
18 files changed
+135
-42
No files matched your search
@@ -0,0 +1,53 @@
|
||||
package preview
|
||||
|
||||
import (
|
||||
"html/template"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"strings"
|
||||
"testing"
|
||||
|
||||
"gitea-mail-templates/tools/config"
|
||||
)
|
||||
|
||||
// Gitea 28 removes FileSize, so render an attachment in every release theme.
|
||||
func TestReleaseAttachmentsGitea28(t *testing.T) {
|
||||
if _, ok := TemplateFuncs["FileSize"]; ok {
|
||||
t.Fatal("FileSize is not available in Gitea 28 mail templates")
|
||||
}
|
||||
cfg, err := config.Load(filepath.Join("..", "data", "templates_config.json"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
data := cfg.Templates["release"].Params
|
||||
data["locale"] = Locale{}
|
||||
markSafeHTML(data)
|
||||
|
||||
themesDir := filepath.Join("..", "..", "themes")
|
||||
themes, err := os.ReadDir(themesDir)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
for _, theme := range themes {
|
||||
if !theme.IsDir() {
|
||||
continue
|
||||
}
|
||||
t.Run(theme.Name(), func(t *testing.T) {
|
||||
content, err := os.ReadFile(filepath.Join(themesDir, theme.Name(), "mail", "repo", "release.tmpl"))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
tmpl, err := template.New("release").Funcs(TemplateFuncs).Parse(string(content))
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
var rendered strings.Builder
|
||||
if err := tmpl.Execute(&rendered, data); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if !strings.Contains(rendered.String(), "release-notes.txt") || !strings.Contains(rendered.String(), "1.5 KiB") {
|
||||
t.Fatal("release attachment or formatted size missing from email")
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user