59 lines
1.6 KiB
Go
59 lines
1.6 KiB
Go
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"))
|
|
}
|