Select Git revision
middleware.go
localizer_test.go 21.11 KiB
package localizer
import (
"testing"
"git.perx.ru/perxis/perxis-go/pkg/locales"
"git.perx.ru/perxis/perxis-go/pkg/schema"
"git.perx.ru/perxis/perxis-go/pkg/schema/field"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestLocalizer_localize(t *testing.T) {
s := schema.New(
"a", field.String(),
"b", field.Number(field.NumberFormatInt),
"c", field.String().SetSingleLocale(true),
"obj1", field.Object(
"a", field.String(),
"b", field.Number(field.NumberFormatInt),
"c", field.Number(field.NumberFormatInt).SetSingleLocale(true),
"obj2", field.Object(
"a", field.Number(field.NumberFormatInt),
"b", field.String(),
"c", field.String().SetSingleLocale(true),
),
),
"obj3", field.Object(
"a", field.String(),
).SetSingleLocale(true),
"slice", field.Array(field.String()),
"arr", field.Array(field.Object(
"num", field.Number(field.NumberFormatInt),
)),
)
tests := []struct {
fallback map[string]interface{}
target map[string]interface{}
want map[string]interface{}
name string
wantErr bool
}{
{
name: "Nil",
fallback: nil,
target: nil,
want: nil,
},
{
name: "Empty",
fallback: map[string]interface{}{},
target: map[string]interface{}{},
want: map[string]interface{}{},
},
{
name: "Target Empty",
fallback: map[string]interface{}{
"a": "en",
"b": 1,
"c": "single",
"obj1": map[string]interface{}{
"a": "obj1_en",
"b": 2,
"c": 20,
"obj2": map[string]interface{}{
"a": 3,
"b": "obj1_obj2_en",
"c": "obj1_obj2_single",