@@ -25,6 +25,7 @@ import (
2525 "code.gitea.io/gitea/modules/markup"
2626 "code.gitea.io/gitea/modules/setting"
2727 "code.gitea.io/gitea/modules/storage"
28+ "code.gitea.io/gitea/modules/templates"
2829 "code.gitea.io/gitea/modules/test"
2930 "code.gitea.io/gitea/services/attachment"
3031 sender_service "code.gitea.io/gitea/services/mailer/sender"
@@ -95,6 +96,13 @@ func prepareMailerBase64Test(t *testing.T) (doer *user_model.User, repo *repo_mo
9596 return user , repo , issue , att1 , att2
9697}
9798
99+ func prepareMailTemplates (name , subjectTmpl , bodyTmpl string ) {
100+ loadedTemplates .Store (& templates.MailTemplates {
101+ SubjectTemplates : texttmpl .Must (texttmpl .New (name ).Parse (subjectTmpl )),
102+ BodyTemplates : template .Must (template .New (name ).Parse (bodyTmpl )),
103+ })
104+ }
105+
98106func TestComposeIssueComment (t * testing.T ) {
99107 doer , _ , issue , comment := prepareMailerTest (t )
100108
@@ -107,8 +115,7 @@ func TestComposeIssueComment(t *testing.T) {
107115 setting .IncomingEmail .Enabled = true
108116 defer func () { setting .IncomingEmail .Enabled = false }()
109117
110- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/comment" ).Parse (subjectTpl ))
111- bodyTemplates = template .Must (template .New ("issue/comment" ).Parse (bodyTpl ))
118+ prepareMailTemplates ("issue/comment" , subjectTpl , bodyTpl )
112119
113120 recipients := []
* user_model.
User {{
Name :
"Test" ,
Email :
"[email protected] " }, {
Name :
"Test2" ,
Email :
"[email protected] " }}
114121 msgs , err := composeIssueCommentMessages (t .Context (), & mailComment {
@@ -153,8 +160,7 @@ func TestComposeIssueComment(t *testing.T) {
153160func TestMailMentionsComment (t * testing.T ) {
154161 doer , _ , issue , comment := prepareMailerTest (t )
155162 comment .Poster = doer
156- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/comment" ).Parse (subjectTpl ))
157- bodyTemplates = template .Must (template .New ("issue/comment" ).Parse (bodyTpl ))
163+ prepareMailTemplates ("issue/comment" , subjectTpl , bodyTpl )
158164 mails := 0
159165
160166 defer test .MockVariableValue (& SendAsync , func (msgs ... * sender_service.Message ) {
@@ -169,9 +175,7 @@ func TestMailMentionsComment(t *testing.T) {
169175func TestComposeIssueMessage (t * testing.T ) {
170176 doer , _ , issue , _ := prepareMailerTest (t )
171177
172- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/new" ).Parse (subjectTpl ))
173- bodyTemplates = template .Must (template .New ("issue/new" ).Parse (bodyTpl ))
174-
178+ prepareMailTemplates ("issue/new" , subjectTpl , bodyTpl )
175179 recipients := []
* user_model.
User {{
Name :
"Test" ,
Email :
"[email protected] " }, {
Name :
"Test2" ,
Email :
"[email protected] " }}
176180 msgs , err := composeIssueCommentMessages (t .Context (), & mailComment {
177181 Issue : issue , Doer : doer , ActionType : activities_model .ActionCreateIssue ,
@@ -200,15 +204,14 @@ func TestTemplateSelection(t *testing.T) {
200204 doer , repo , issue , comment := prepareMailerTest (t )
201205 recipients := []
* user_model.
User {{
Name :
"Test" ,
Email :
"[email protected] " }}
202206
203- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/default" ).Parse ("issue/default/subject" ))
204- texttmpl .Must (subjectTemplates .New ("issue/new" ).Parse ("issue/new/subject" ))
205- texttmpl .Must (subjectTemplates .New ("pull/comment" ).Parse ("pull/comment/subject" ))
206- texttmpl .Must (subjectTemplates .New ("issue/close" ).Parse ("" )) // Must default to fallback subject
207+ prepareMailTemplates ("issue/default" , "issue/default/subject" , "issue/default/body" )
207208
208- bodyTemplates = template .Must (template .New ("issue/default" ).Parse ("issue/default/body" ))
209- template .Must (bodyTemplates .New ("issue/new" ).Parse ("issue/new/body" ))
210- template .Must (bodyTemplates .New ("pull/comment" ).Parse ("pull/comment/body" ))
211- template .Must (bodyTemplates .New ("issue/close" ).Parse ("issue/close/body" ))
209+ texttmpl .Must (LoadedTemplates ().SubjectTemplates .New ("issue/new" ).Parse ("issue/new/subject" ))
210+ texttmpl .Must (LoadedTemplates ().SubjectTemplates .New ("pull/comment" ).Parse ("pull/comment/subject" ))
211+ texttmpl .Must (LoadedTemplates ().SubjectTemplates .New ("issue/close" ).Parse ("" )) // Must default to a fallback subject
212+ template .Must (LoadedTemplates ().BodyTemplates .New ("issue/new" ).Parse ("issue/new/body" ))
213+ template .Must (LoadedTemplates ().BodyTemplates .New ("pull/comment" ).Parse ("pull/comment/body" ))
214+ template .Must (LoadedTemplates ().BodyTemplates .New ("issue/close" ).Parse ("issue/close/body" ))
212215
213216 expect := func (t * testing.T , msg * sender_service.Message , expSubject , expBody string ) {
214217 subject := msg .ToMessage ().GetGenHeader ("Subject" )
@@ -253,9 +256,7 @@ func TestTemplateServices(t *testing.T) {
253256 expect := func (t * testing.T , issue * issues_model.Issue , comment * issues_model.Comment , doer * user_model.User ,
254257 actionType activities_model.ActionType , fromMention bool , tplSubject , tplBody , expSubject , expBody string ,
255258 ) {
256- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/default" ).Parse (tplSubject ))
257- bodyTemplates = template .Must (template .New ("issue/default" ).Parse (tplBody ))
258-
259+ prepareMailTemplates ("issue/default" , tplSubject , tplBody )
259260 recipients := []
* user_model.
User {{
Name :
"Test" ,
Email :
"[email protected] " }}
260261 msg := testComposeIssueCommentMessage (t , & mailComment {
261262 Issue : issue , Doer : doer , ActionType : actionType ,
@@ -512,8 +513,7 @@ func TestEmbedBase64Images(t *testing.T) {
512513 att2ImgBase64 := fmt .Sprintf (`<img src="%s"/>` , att2Base64 )
513514
514515 t .Run ("ComposeMessage" , func (t * testing.T ) {
515- subjectTemplates = texttmpl .Must (texttmpl .New ("issue/new" ).Parse (subjectTpl ))
516- bodyTemplates = template .Must (template .New ("issue/new" ).Parse (bodyTpl ))
516+ prepareMailTemplates ("issue/new" , subjectTpl , bodyTpl )
517517
518518 issue .Content = fmt .Sprintf (`MSG-BEFORE <image src="attachments/%s"> MSG-AFTER` , att1 .UUID )
519519 require .NoError (t , issues_model .UpdateIssueCols (t .Context (), issue , "content" ))
0 commit comments