Files
galaxy-game/mail/internal/domain/template/model_test.go
T
2026-04-17 18:39:16 +02:00

72 lines
1.4 KiB
Go

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)
})
}
}