Skip to content
Snippets Groups Projects
Commit cfde23af authored by Alena Petraki's avatar Alena Petraki :nail_care_tone1: Committed by Pavel Antonov
Browse files

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

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