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

Исправлена функция ListFieldsRecursive

parent 54e5808d
No related branches found
No related tags found
No related merge requests found
...@@ -380,7 +380,7 @@ func (f *Field) ListFields(filter ...FieldFilterFunc) []*Field { ...@@ -380,7 +380,7 @@ func (f *Field) ListFields(filter ...FieldFilterFunc) []*Field {
// ListFieldsRecursive возвращает массив всех вложенных полей рекурсивно // ListFieldsRecursive возвращает массив всех вложенных полей рекурсивно
func (f *Field) ListFieldsRecursive(filter ...FieldFilterFunc) []*Field { func (f *Field) ListFieldsRecursive(filter ...FieldFilterFunc) []*Field {
fields := f.ListFields(filter...) fields := f.ListFields(filter...)
for _, fld := range fields { for _, fld := range f.ListFields() {
fields = append(fields, fld.ListFieldsRecursive(filter...)...) fields = append(fields, fld.ListFieldsRecursive(filter...)...)
} }
return fields return fields
......
...@@ -93,17 +93,22 @@ func TestField_ListFieldsRecursive(t *testing.T) { ...@@ -93,17 +93,22 @@ func TestField_ListFieldsRecursive(t *testing.T) {
func TestField_ListFieldsRecursive_WithFilter(t *testing.T) { func TestField_ListFieldsRecursive_WithFilter(t *testing.T) {
sch := Object( sch := Object(
"a", Object( "f1", Object(
"b", Object( "b", Object(
"c", String().SetSingleLocale(true), "c", String().SetSingleLocale(true),
), ),
), ),
"f2", Object(
"b", Object(
"c", String().SetSingleLocale(true),
),
).SetSingleLocale(true),
) )
sch.EnableState() sch.EnableState()
fields := sch.ListFieldsRecursive(func(f *Field) bool { return f.SingleLocale == true }) fields := sch.ListFieldsRecursive(func(f *Field) bool { return f.SingleLocale == true })
assert.Len(t, fields, 1) assert.Len(t, fields, 3)
} }
func TestField_CloneWithState(t *testing.T) { func TestField_CloneWithState(t *testing.T) {
......
package schema
import (
"testing"
"git.perx.ru/perxis/perxis-go/pkg/schema/field"
"github.com/stretchr/testify/assert"
)
func TestSchema_Clone(t *testing.T) {
f := New("a", field.String())
f.ClearState()
fld := f.Clone(false)
assert.Nil(t, fld.State)
f.EnableState()
fld = f.Clone(false)
assert.NotNil(t, fld.State)
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment