feat: mail service

This commit is contained in:
Ilia Denisov
2026-04-17 18:39:16 +02:00
committed by GitHub
parent 23ffcb7535
commit 5b7593e6f6
183 changed files with 31215 additions and 248 deletions
@@ -0,0 +1,71 @@
package template
import (
"testing"
"galaxy/mail/internal/domain/common"
"github.com/stretchr/testify/require"
)
func TestTemplateValidate(t *testing.T) {
t.Parallel()
locale, err := common.ParseLocale("en-us")
require.NoError(t, err)
tests := []struct {
name string
record Template
wantErr bool
}{
{
name: "valid",
record: Template{
TemplateID: common.TemplateID("auth.login_code"),
Locale: locale,
SubjectTemplate: "Your code",
TextTemplate: "Code: {{.Code}}",
HTMLTemplate: "<p>Code: {{.Code}}</p>",
Version: "sha256:abcd",
},
},
{
name: "non canonical locale rejected",
record: Template{
TemplateID: common.TemplateID("auth.login_code"),
Locale: common.Locale("en-us"),
SubjectTemplate: "Your code",
TextTemplate: "Code: {{.Code}}",
Version: "sha256:abcd",
},
wantErr: true,
},
{
name: "missing subject template",
record: Template{
TemplateID: common.TemplateID("auth.login_code"),
Locale: locale,
TextTemplate: "Code: {{.Code}}",
Version: "sha256:abcd",
},
wantErr: true,
},
}
for _, tt := range tests {
tt := tt
t.Run(tt.name, func(t *testing.T) {
t.Parallel()
err := tt.record.Validate()
if tt.wantErr {
require.Error(t, err)
return
}
require.NoError(t, err)
})
}
}