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

Merge branch 'feature/PRXS-2656-GetCustomFieldByPath' into 'master'

Добавлено получение вложенных в Reference полей схемы

See merge request perxis/perxis-go!308
parents 8d640503 7b14a239
No related branches found
No related tags found
No related merge requests found
package files
import (
"testing"
"git.perx.ru/perxis/perxis-go/pkg/schema"
"git.perx.ru/perxis/perxis-go/pkg/schema/field"
"github.com/stretchr/testify/assert"
)
func TestFileField_Get(t *testing.T) {
sch := schema.New(
"a", field.String(),
"b", field.Object(
"file", Field(),
),
"file", Field(),
)
sch.ClearState()
assert.Equal(t, field.String(), sch.GetField("file.id"))
assert.Equal(t, field.String(), sch.GetField("file.name"))
assert.Equal(t, field.String(), sch.GetField("file.mimeType"))
assert.Equal(t, field.String(), sch.GetField("file.url"))
assert.Equal(t, field.String(), sch.GetField("file.key"))
assert.Equal(t, field.Number(field.NumberFormatInt), sch.GetField("file.size"))
assert.Equal(t, field.String(), sch.GetField("b.file.id"))
assert.Equal(t, field.String(), sch.GetField("b.file.name"))
assert.Equal(t, field.String(), sch.GetField("b.file.mimeType"))
assert.Equal(t, field.String(), sch.GetField("b.file.url"))
assert.Equal(t, field.String(), sch.GetField("b.file.key"))
assert.Equal(t, field.Number(field.NumberFormatInt), sch.GetField("b.file.size"))
}
......@@ -26,9 +26,22 @@ func (p ReferenceParameters) Clone(reset bool) field.Parameters {
}
return &p
}
func (p ReferenceParameters) GetField(f *field.Field, name string) *field.Field { return nil }
func (p ReferenceParameters) GetField(f *field.Field, name string) *field.Field {
var fld *field.Field
switch name {
case "id", "collection_id":
return field.String()
case "disabled":
return field.Bool()
}
return f.SetFieldState(name, fld)
}
func (p ReferenceParameters) ListFields(f *field.Field, filter ...field.FieldFilterFunc) []*field.Field {
return nil
return []*field.Field{
f.SetFieldState("id", field.String()),
f.SetFieldState("collection_id", field.String()),
f.SetFieldState("disabled", field.Bool()),
}
}
type ReferenceType struct{}
......
......@@ -298,3 +298,23 @@ func TestReference_JSON(t *testing.T) {
assert.Equal(t, fld, res)
}
func TestReferenceField_Get(t *testing.T) {
sch := schema.New(
"a", field.String(),
"b", field.Object(
"ref", Field(nil),
),
"ref", Field(nil),
)
sch.ClearState()
assert.Equal(t, field.String(), sch.GetField("ref.id"))
assert.Equal(t, field.String(), sch.GetField("ref.collection_id"))
assert.Equal(t, field.Bool(), sch.GetField("ref.disabled"))
assert.Equal(t, field.String(), sch.GetField("b.ref.id"))
assert.Equal(t, field.String(), sch.GetField("b.ref.collection_id"))
assert.Equal(t, field.Bool(), sch.GetField("b.ref.disabled"))
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment