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

Merge branch 'feature/PRXS-1913-DataNilCheck' into 'master'

Добавлен метод Delete для Item

See merge request perxis/perxis-go!137
parents 143766b5 1e7d38e5
No related branches found
No related tags found
No related merge requests found
...@@ -398,6 +398,16 @@ func (i *Item) Get(field string) (any, error) { ...@@ -398,6 +398,16 @@ func (i *Item) Get(field string) (any, error) {
return i.getItemData(field) return i.getItemData(field)
} }
// Delete удаляет значение поля Data
func (i *Item) Delete(field string) error {
// Если data == nil, то нет необходимости выполнять удаление
if i.Data == nil {
return nil
}
return data.Delete(field, i.Data)
}
// GetSystemField возвращает описание поля для системных аттрибутов Item // GetSystemField возвращает описание поля для системных аттрибутов Item
func GetSystemField(fld string) (*field.Field, error) { func GetSystemField(fld string) (*field.Field, error) {
switch fld { switch fld {
......
...@@ -25,6 +25,42 @@ func TestItem_Set(t *testing.T) { ...@@ -25,6 +25,42 @@ func TestItem_Set(t *testing.T) {
} }
func TestItem_DeleteItemData(t *testing.T) {
tests := []struct {
name string
item *Item
field string
want map[string]any
wantErr assert.ErrorAssertionFunc
}{
{
name: "Simple",
item: &Item{Data: map[string]any{"a": "b", "c": "d"}},
field: "a",
want: map[string]any{"c": "d"},
wantErr: assert.NoError,
},
{
name: "Item data is nil",
item: &Item{Data: nil},
field: "a",
want: nil,
wantErr: assert.NoError,
},
}
for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
err := tc.item.Delete(tc.field)
assert.NoError(t, err)
if !tc.wantErr(t, err) {
return
}
assert.Equal(t, tc.want, tc.item.Data)
})
}
}
func TestGetField(t *testing.T) { func TestGetField(t *testing.T) {
sch := schema.New( sch := schema.New(
"a", field.String(), "a", field.String(),
......
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