From 6d54ff3cbbad07a18c7a0b1baa81982792e42196 Mon Sep 17 00:00:00 2001 From: ensiouel <ensiouel@gmail.com> Date: Tue, 23 Jan 2024 10:48:26 +0300 Subject: [PATCH] =?UTF-8?q?Revert=20"=D0=B8=D0=B7=D0=BC=D0=B5=D0=BD=D0=B5?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BB=D0=BE=D0=B3=D0=B8=D0=BA=D0=B0=20=D1=80?= =?UTF-8?q?=D0=B0=D0=B1=D0=BE=D1=82=D1=8B=20Set=20=D0=B8=20Get,=20=D1=82?= =?UTF-8?q?=D0=B5=D0=BF=D0=B5=D1=80=D1=8C=20=D0=B5=D1=81=D0=BB=D0=B8=20?= =?UTF-8?q?=D0=B2=D1=81=D1=82=D1=80=D0=B5=D1=87=D0=B0=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=BD=D0=B5=D0=B8=D0=BD=D0=B8=D1=86=D0=B8=D0=B0=D0=BB?= =?UTF-8?q?=D0=B8=D0=B7=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D0=B0?= =?UTF-8?q?=D1=8F=20map,=20=D0=B2=D0=BE=D0=B7=D0=B2=D1=80=D0=B0=D1=89?= =?UTF-8?q?=D0=B0=D0=B5=D1=82=D1=81=D1=8F=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA?= =?UTF-8?q?=D0=B0"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8a074859dfbbb9b2e9ab8f4d9d5cc803dfc6a8e3. --- pkg/data/data.go | 4 +--- pkg/data/data_test.go | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/data/data.go b/pkg/data/data.go index c94a7e25..c1d0f63f 100644 --- a/pkg/data/data.go +++ b/pkg/data/data.go @@ -3,8 +3,6 @@ package data import ( "strconv" "strings" - - "git.perx.ru/perxis/perxis-go/pkg/errors" ) const DefaultFieldDelimiter = "." @@ -180,7 +178,7 @@ func set(path []string, data, value any) error { switch v := data.(type) { case map[string]interface{}: if v == nil { - return errors.New("assignment to nil map") + return nil } if len(path) == 1 { diff --git a/pkg/data/data_test.go b/pkg/data/data_test.go index 6d4ccfbd..4a54ff0a 100644 --- a/pkg/data/data_test.go +++ b/pkg/data/data_test.go @@ -83,7 +83,7 @@ func TestDelete(t *testing.T) { }, "a.b", map[string]any{ - "a": []any{uninitializedMap, map[string]any{"a": "1", "b": "2"}}, + "a": []any{uninitializedMap, map[string]any{"a": "1"}}, }, }, { @@ -105,7 +105,7 @@ func TestDelete(t *testing.T) { "a", []any{ uninitializedMap, - map[string]any{"a": 1, "b": "2"}, + map[string]any{"b": "2"}, }, }, // Решили что автоматически удалять пустые объекты/слайсы не нужно @@ -300,25 +300,27 @@ func TestSet(t *testing.T) { {"Map value", args{"a", map[string]interface{}{"a": "0"}, map[string]interface{}{"a": "a"}}, map[string]interface{}{"a": map[string]interface{}{"a": "a"}}, assert.NoError}, {"Slice", args{"a.a", map[string]interface{}{"a": []any{map[string]any{"a": "0"}, map[string]any{"a": "0", "b": "b"}}}, "a"}, map[string]interface{}{"a": []any{map[string]any{"a": "a"}, map[string]any{"a": "a", "b": "b"}}}, assert.NoError}, {"Slice", args{"a.0.a", map[string]interface{}{"a": []any{map[string]any{"a": "0"}, map[string]any{"a": "0", "b": "b"}}}, "a"}, map[string]interface{}{"a": []any{map[string]any{"a": "a"}, map[string]any{"a": "0", "b": "b"}}}, assert.NoError}, - {"Set the object for the uninitialized map", args{"a", uninitializedMap, "a"}, uninitializedMap, assert.Error}, - {"Set the object field for the uninitialized map", args{"a.b", uninitializedMap, "a"}, uninitializedMap, assert.Error}, + {"Set the object for the uninitialized map", args{"a", uninitializedMap, "a"}, uninitializedMap, assert.NoError}, + {"Set the object field for the uninitialized map", args{"a.b", uninitializedMap, "a"}, uninitializedMap, assert.NoError}, { - "Set object field from first level array with uninitialized map", + "object field from first level array with uninitialized map", args{"a.b", map[string]any{"a": []any{uninitializedMap, map[string]any{"a": "1"}}}, "2"}, - map[string]any{"a": []any{uninitializedMap, map[string]any{"a": "1"}}}, - assert.Error, + map[string]any{"a": []any{uninitializedMap, map[string]any{"a": "1", "b": "2"}}}, + assert.NoError, }, { - "Set object field from second level uninitialized map", + "object field from second level uninitialized map", args{"a.b.a", map[string]any{"a": map[string]any{"a": uninitializedMap, "b": map[string]any{"b": "2"}}}, "1"}, - map[string]any{"a": map[string]any{"a": uninitializedMap, "b": map[string]any{"a": "1", "b": "2"}}}, + map[string]any{ + "a": map[string]any{"a": uninitializedMap, "b": map[string]any{"a": "1", "b": "2"}}, + }, assert.NoError, }, { - "Set object from array with uninitialized map", + "object from array with uninitialized map", args{"a", []any{uninitializedMap, map[string]any{"b": "2"}}, "1"}, - []any{uninitializedMap, map[string]any{"b": "2"}}, - assert.Error, + []any{uninitializedMap, map[string]any{"a": "1", "b": "2"}}, + assert.NoError, }, } for _, tt := range tests { -- GitLab