From 0752b4b5b130bcbfde2d5c1c7064adbcdd67dfad Mon Sep 17 00:00:00 2001 From: qisfj <813011968@qq.com> Date: Fri, 7 Oct 2022 20:23:49 +0800 Subject: [PATCH] follow suggestions. Co-authored-by: Oleg Lobanov --- settings/settings.go | 3 ++- settings/settings_test.go | 31 ++++++++++++++++--------------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/settings/settings.go b/settings/settings.go index cc2b3a75..d026f57d 100644 --- a/settings/settings.go +++ b/settings/settings.go @@ -3,6 +3,7 @@ package settings import ( "crypto/rand" "encoding/json" + "strconv" "strings" "time" @@ -71,7 +72,7 @@ func GenerateKey() ([]byte, error) { type Duration time.Duration // support json Marshal/Unmarshal for time.Duration func (dur Duration) MarshalJSON() ([]byte, error) { - return []byte("\"" + time.Duration(dur).String() + "\""), nil + return []byte(strconv.Quote(time.Duration(dur).String())), nil } func (dur *Duration) UnmarshalJSON(data []byte) error { diff --git a/settings/settings_test.go b/settings/settings_test.go index 37c84ea3..9434b3e6 100644 --- a/settings/settings_test.go +++ b/settings/settings_test.go @@ -29,20 +29,21 @@ func TestDuration(t *testing.T) { {"yaml", yaml.Marshal, yaml.Unmarshal}, } for _, tc := range testCases { - for _, codec := range codecs { - t.Run(codec.name, func(t *testing.T) { - // str --> dur --> mid_str(may different from str) --> dur - var dur Duration - err := codec.unmarshal([]byte(tc.str), &dur) - require.NoError(t, err) - require.Equal(t, tc.value, dur) - - midStr, err := codec.marshal(dur) - require.NoError(t, err) - err = codec.unmarshal(midStr, &dur) - require.NoError(t, err) - require.Equal(t, tc.value, dur) - }) - } + t.Run(tc.str, func(t *testing.T) { + for _, codec := range codecs { + t.Run(codec.name, func(t *testing.T) { + // str --> dur --> mid_str(may different from str) --> dur + var dur Duration + err := codec.unmarshal([]byte(tc.str), &dur) + require.NoError(t, err) + require.Equal(t, tc.value, dur) + midStr, err := codec.marshal(dur) + require.NoError(t, err) + err = codec.unmarshal(midStr, &dur) + require.NoError(t, err) + require.Equal(t, tc.value, dur) + }) + } + }) } }