Skip to content
Snippets Groups Projects
Commit 4eca59f0 authored by ensiouel's avatar ensiouel
Browse files

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

parent 3d57b6c2
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) {
return i.getItemData(field)
}
// DeleteItemData удаляет значение поля Data
func (i *Item) DeleteItemData(field string) error {
// Если data == nil, то нет необходимости выполнять удаление
if i.Data == nil {
return nil
}
return data.Delete(field, i.Data)
}
// GetSystemField возвращает описание поля для системных аттрибутов Item
func GetSystemField(fld string) (*field.Field, error) {
switch fld {
......
......@@ -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.DeleteItemData(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) {
sch := schema.New(
"a", field.String(),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment