Skip to content
Snippets Groups Projects
Commit 73c14d86 authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'feature/PRXS-2766-MultilangSearch-SingleLocal' into 'master'

Добавлен метод для определения, является ли поле SingleLocale

See merge request perxis/perxis-go!307
parents 640758f8 cfde23af
No related branches found
No related tags found
No related merge requests found
......@@ -23,6 +23,9 @@ func TestFromFiles(t *testing.T) {
t.Run("Success", func(t *testing.T) {
schemas, err := schema.FromFS(os.DirFS("assets"))
for _, s := range schemas {
s.ClearState()
}
require.NoError(t, err)
require.Len(t, schemas, 2, "В директории хранятся две корректные схемы")
require.ElementsMatch(t, []*schema.Schema{getPagesSchema(), getPagesSchema()}, schemas, "Cхемы должны соответствовать объекту из функции")
......@@ -146,6 +149,7 @@ func getPagesSchema() *schema.Schema {
page.Field.UI.Options["collection_icon"] = "ApartmentOutlined/FileTextOutlined"
_ = page.ConvertTypes()
page.ClearState()
return page
}
......
......@@ -193,6 +193,9 @@ func TestSchema_JSON(t *testing.T) {
err = json.Unmarshal(b, res)
require.NoError(t, err)
sch.ClearState()
res.ClearState()
assert.Equal(t, sch, res)
}
......@@ -213,6 +216,7 @@ func TestSchemaUI_UnmarshalJSON(t *testing.T) {
"name", field.String().WithUI(ui),
)
schm.UI = ui
schm.ClearState()
j := `{
"ui": {
......@@ -288,6 +292,7 @@ func TestSchemaUI_UnmarshalJSON(t *testing.T) {
sch := schema.New()
err := sch.UnmarshalJSON([]byte(j))
sch.ClearState()
require.NoError(t, err)
assert.Equal(t, sch, schm)
}
......@@ -364,7 +369,7 @@ func TestSchema_GetField_WithInline(t *testing.T) {
"a", field.String(),
"b", field.String(),
),
"zz", field.Object(
"zzz", field.Object(
true,
"zz", field.Array(field.Object(
"str3", field.String(),
......@@ -857,6 +862,7 @@ func TestSchema_UnknownJSON(t *testing.T) {
"times", field.Number("int"),
"dates", field.Array(field.Time()),
)
sch.ClearState()
b, err := json.Marshal(sch)
require.NoError(t, err)
......@@ -881,6 +887,8 @@ func TestSchema_UnknownJSON(t *testing.T) {
require.NoError(t, err)
b, err = json.Marshal(s2)
require.NoError(t, err)
s1.ClearState()
s2.ClearState()
assert.Equal(t, "unknown", s2.GetType().Name(), "Схема неизвестного типа должна определяться как unknown")
assert.Equal(t, s1, s2, "Схема не должна меняться при повторном маршалинге")
......@@ -888,6 +896,7 @@ func TestSchema_UnknownJSON(t *testing.T) {
s3 := schema.New()
err = json.Unmarshal(b, s3)
require.NoError(t, err)
s3.ClearState()
assert.Equal(t, "object", s3.GetType().Name(), "Схема должна восстановить тип object при восстановление регистрации типа")
assert.Equal(t, sch, s3, "Схема должна восстановиться при восстановление регистрации типа")
}
......
......@@ -36,11 +36,18 @@ func TestSetup_InstallCollections(t *testing.T) {
},
{
name: "Install one collection success",
collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}},
collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env",
Schema: schema.New("name", field.String()).ClearState()}},
collectionsCall: func(svc *mockscollections.Collections) {
svc.On("Get", mock.Anything, "sp", "env", "1").Return(nil, errors.New("not found")).Once()
svc.On("Create", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}).Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once()
svc.On("SetSchema", mock.Anything, "sp", "env", "1", schema.New("name", field.String())).Return(nil).Once()
svc.On("Create", mock.Anything,
&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env",
Schema: schema.New("name", field.String()).ClearState()}).
Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env",
Schema: schema.New("name", field.String()).ClearState()}, nil).Once()
svc.On("SetSchema", mock.Anything, "sp", "env", "1",
schema.New("name", field.String()).ClearState()).
Return(nil).Once()
},
envsCall: func(svc *envmocks.Environments) {
svc.On("Migrate", mock.Anything, "sp", "env").Return(nil).Once()
......@@ -123,11 +130,15 @@ func TestSetup_InstallCollections(t *testing.T) {
},
{
name: "Fail to install collection on migrate",
collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}},
collections: []*collections.Collection{{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String()).ClearState()}},
collectionsCall: func(svc *mockscollections.Collections) {
svc.On("Get", mock.Anything, "sp", "env", "1").Return(nil, errors.New("not found")).Once()
svc.On("Create", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}).Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env", Schema: schema.New("name", field.String())}, nil).Once()
svc.On("SetSchema", mock.Anything, "sp", "env", "1", schema.New("name", field.String())).Return(nil).Once()
svc.On("Create", mock.Anything, &collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env",
Schema: schema.New("name", field.String()).ClearState()}).
Return(&collections.Collection{ID: "1", SpaceID: "sp", Name: "space", EnvID: "env",
Schema: schema.New("name", field.String()).ClearState()}, nil).Once()
svc.On("SetSchema", mock.Anything, "sp", "env", "1",
schema.New("name", field.String()).ClearState()).Return(nil).Once()
},
envsCall: func(svc *envmocks.Environments) {
svc.On("Migrate", mock.Anything, "sp", "env").Return(errors.New("migrate error")).Once()
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment