photoprism/internal/i18n/i18n_test.go
Michael Mayer c0f10e2288 Use gettext for backend translations too
Signed-off-by: Michael Mayer <michael@liquidbytes.net>
2020-07-15 01:26:54 +02:00

68 lines
1.8 KiB
Go

package i18n
import (
"os"
"testing"
"github.com/leonelquinteros/gotext"
"github.com/stretchr/testify/assert"
)
func TestMain(m *testing.M) {
gotext.Configure(localeDir, string(locale), "default")
code := m.Run()
os.Exit(code)
}
func TestMsg(t *testing.T) {
t.Run("already exists", func(t *testing.T) {
msg := Msg(ErrAlreadyExists, "A cat")
assert.Equal(t, "A cat already exists", msg)
})
t.Run("unexpected error", func(t *testing.T) {
msg := Msg(ErrUnexpected, "A cat")
assert.Equal(t, "Unexpected error, please try again", msg)
})
t.Run("already exists german", func(t *testing.T) {
SetLocale("de")
msgDE := Msg(ErrAlreadyExists, "Eine Katze")
assert.Equal(t, "Eine Katze existiert bereits", msgDE)
SetLocale("")
msgDefault := Msg(ErrAlreadyExists, "A cat")
assert.Equal(t, "A cat already exists", msgDefault)
})
t.Run("already exists polish", func(t *testing.T) {
SetLocale("pl")
msgPL := Msg(ErrAlreadyExists, "Kot")
assert.Equal(t, "Kot już istnieje", msgPL)
SetLocale("")
msgDefault := Msg(ErrAlreadyExists, "A cat")
assert.Equal(t, "A cat already exists", msgDefault)
})
}
func TestError(t *testing.T) {
t.Run("already exists", func(t *testing.T) {
err := Error(ErrAlreadyExists, "A cat")
assert.EqualError(t, err, "A cat already exists")
})
t.Run("unexpected error", func(t *testing.T) {
err := Error(ErrUnexpected, "A cat")
assert.EqualError(t, err, "Unexpected error, please try again")
})
t.Run("already exists german", func(t *testing.T) {
SetLocale("de")
errGerman := Error(ErrAlreadyExists, "Eine Katze")
assert.EqualError(t, errGerman, "Eine Katze existiert bereits")
SetLocale("")
errDefault := Error(ErrAlreadyExists, "A cat")
assert.EqualError(t, errDefault, "A cat already exists")
})
}