From 5da33b0b3b1342527dd57dc93ce9a4ba902afdd1 Mon Sep 17 00:00:00 2001 From: ensiouel <ensiouel@gmail.com> Date: Mon, 22 Jan 2024 13:14:01 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8?= =?UTF-8?q?=D1=8E=20Set=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B0=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA=D0=B0=20dat?= =?UTF-8?q?a=20=D0=BD=D0=B0=20nil?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/data/data.go | 6 ++++++ pkg/data/data_test.go | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/pkg/data/data.go b/pkg/data/data.go index c94a7e25..2e016a6f 100644 --- a/pkg/data/data.go +++ b/pkg/data/data.go @@ -9,6 +9,8 @@ import ( const DefaultFieldDelimiter = "." +var ErrDataIsNil = errors.New("data is nil") + type DeleteValueType struct{} var DeleteValue DeleteValueType @@ -169,6 +171,10 @@ func getPath(field string, delim ...string) []string { } func Set(field string, data, value any, delim ...string) error { + if data == nil { + return ErrDataIsNil + } + return set(getPath(field, delim...), data, value) } diff --git a/pkg/data/data_test.go b/pkg/data/data_test.go index 5427dea8..a77df7ad 100644 --- a/pkg/data/data_test.go +++ b/pkg/data/data_test.go @@ -316,6 +316,12 @@ func TestSet(t *testing.T) { []any{(map[string]any)(nil), map[string]any{"b": "2"}}, assert.Error, }, + { + "Set object to nil data", + args{"a", nil, "1"}, + nil, + assert.Error, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { -- GitLab