feat: notification service
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package templates
|
||||
|
||||
import (
|
||||
"path/filepath"
|
||||
"runtime"
|
||||
"testing"
|
||||
|
||||
"galaxy/mail/internal/domain/common"
|
||||
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
var expectedNotificationTemplateIDs = []common.TemplateID{
|
||||
"geo.review_recommended",
|
||||
"game.turn.ready",
|
||||
"game.finished",
|
||||
"game.generation_failed",
|
||||
"lobby.runtime_paused_after_start",
|
||||
"lobby.application.submitted",
|
||||
"lobby.membership.approved",
|
||||
"lobby.membership.rejected",
|
||||
"lobby.invite.created",
|
||||
"lobby.invite.redeemed",
|
||||
"lobby.invite.expired",
|
||||
}
|
||||
|
||||
func TestCheckedInTemplateCatalogIncludesNotificationEnglishAssets(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
catalog, err := NewCatalog(checkedInTemplateRoot(t))
|
||||
require.NoError(t, err)
|
||||
|
||||
locale, err := common.ParseLocale("en")
|
||||
require.NoError(t, err)
|
||||
|
||||
authTemplate, err := catalog.Lookup(common.TemplateID("auth.login_code"), locale)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, common.Locale("en"), authTemplate.ResolvedLocale())
|
||||
require.False(t, authTemplate.LocaleFallbackUsed())
|
||||
|
||||
for _, templateID := range expectedNotificationTemplateIDs {
|
||||
resolved, err := catalog.Lookup(templateID, locale)
|
||||
require.NoErrorf(t, err, "lookup checked-in template %s", templateID)
|
||||
require.Equalf(t, common.Locale("en"), resolved.ResolvedLocale(), "template %s must resolve to en", templateID)
|
||||
require.Falsef(t, resolved.LocaleFallbackUsed(), "template %s must not use fallback for en", templateID)
|
||||
}
|
||||
}
|
||||
|
||||
func checkedInTemplateRoot(t *testing.T) string {
|
||||
t.Helper()
|
||||
|
||||
_, thisFile, _, ok := runtime.Caller(0)
|
||||
if !ok {
|
||||
require.FailNow(t, "runtime.Caller failed")
|
||||
}
|
||||
|
||||
return filepath.Clean(filepath.Join(filepath.Dir(thisFile), "..", "..", "..", "templates"))
|
||||
}
|
||||
Reference in New Issue
Block a user