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: "

Code: {{.Code}}

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