1
Fork 0
template-strings/templatestrings_test.go

92 lines
3.2 KiB
Go
Raw Normal View History

2021-06-17 20:59:24 +00:00
package templatestrings
import (
2022-02-10 10:15:39 +00:00
"embed"
2021-06-17 20:59:24 +00:00
"testing"
2022-02-10 10:15:39 +00:00
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
2021-06-17 20:59:24 +00:00
)
2022-02-10 10:15:39 +00:00
//go:embed testdata/*
var embeddedTestData embed.FS
2021-06-17 20:59:24 +00:00
func TestAll(t *testing.T) {
t.Run("Faulty initialization", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "en", "faulty")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Missing dir", func(t *testing.T) {
_, err := InitTemplateStrings("testdata/x", ".yaml", "en")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Missing file", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "en", "x")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("File as directory", func(t *testing.T) {
_, err := InitTemplateStrings("testdata/en.yaml", ".yaml", "en")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Missing default variant", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "x", "en")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("No variants", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "x")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Language twice", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "en", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Empty language", func(t *testing.T) {
_, err := InitTemplateStrings("testdata", ".yaml", "")
2022-02-10 10:15:39 +00:00
require.Error(t, err)
2021-06-17 20:59:24 +00:00
})
t.Run("Wrong number of inputs", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Empty(t, ts.GetTemplateStringVariant("simple", "en", "x"))
2021-06-17 20:59:24 +00:00
})
t.Run("Default variant", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Equal(t, "Simple", ts.GetTemplateStringVariant("simple"))
2021-06-17 20:59:24 +00:00
})
t.Run("Specified variant", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Equal(t, "Simple", ts.GetTemplateStringVariant("en", "simple"))
assert.Equal(t, "Einfach", ts.GetTemplateStringVariant("de", "simple"))
2021-06-17 20:59:24 +00:00
})
t.Run("Fallback to default variant", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Equal(t, "Fallback", ts.GetTemplateStringVariant("de", "fallback"))
2021-06-17 20:59:24 +00:00
})
t.Run("Missing variant", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Equal(t, "Simple", ts.GetTemplateStringVariant("x", "simple"))
2021-06-17 20:59:24 +00:00
})
t.Run("Missing string", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Empty(t, ts.GetTemplateStringVariant("x"))
2021-06-17 20:59:24 +00:00
})
t.Run("Template func", func(t *testing.T) {
ts, err := InitTemplateStrings("testdata", ".yaml", "en", "de")
2022-02-10 10:15:39 +00:00
require.NoError(t, err)
assert.Equal(t, "Simple", ts.GetTemplateStringVariantFunc()("simple"))
})
// Test using embedded strings
t.Run("Specified variant", func(t *testing.T) {
ts, err := InitTemplateStringsFS(embeddedTestData, "testdata", ".yaml", "en", "de")
require.NoError(t, err)
assert.Equal(t, "Simple", ts.GetTemplateStringVariant("en", "simple"))
assert.Equal(t, "Einfach", ts.GetTemplateStringVariant("de", "simple"))
2021-06-17 20:59:24 +00:00
})
}