From 8009ba60a6a7d6ceb7b6483a29f4e68d533af243 Mon Sep 17 00:00:00 2001 From: Eugene Burkov Date: Tue, 6 Apr 2021 12:37:46 +0300 Subject: [PATCH] aghstrings: fix lil bug --- internal/aghstrings/strings.go | 6 ++++-- internal/aghstrings/strings_test.go | 12 ++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/aghstrings/strings.go b/internal/aghstrings/strings.go index 219090939c3..b02b35cc88b 100644 --- a/internal/aghstrings/strings.go +++ b/internal/aghstrings/strings.go @@ -1,7 +1,9 @@ // Package aghstrings contains utilities dealing with strings. package aghstrings -import "strings" +import ( + "strings" +) // CloneSlice returns the exact copy of a. func CloneSlice(a []string) (b []string) { @@ -10,7 +12,7 @@ func CloneSlice(a []string) (b []string) { // CloneSliceOrEmpty returns the copy of a or empty strings slice if a is nil. func CloneSliceOrEmpty(a []string) (b []string) { - if a == nil { + if len(a) == 0 { return []string{} } diff --git a/internal/aghstrings/strings_test.go b/internal/aghstrings/strings_test.go index 84580ece4bd..00d99c951c6 100644 --- a/internal/aghstrings/strings_test.go +++ b/internal/aghstrings/strings_test.go @@ -9,8 +9,9 @@ import ( ) func TestCloneSlice_family(t *testing.T) { + a := []string{"1", "2", "3"} + t.Run("cloneslice_simple", func(t *testing.T) { - a := []string{"1", "2", "3"} assert.Equal(t, a, CloneSlice(a)) }) @@ -18,12 +19,19 @@ func TestCloneSlice_family(t *testing.T) { assert.Nil(t, CloneSlice(nil)) }) + t.Run("cloneslice_empty", func(t *testing.T) { + assert.Nil(t, CloneSlice([]string{})) + }) + t.Run("clonesliceorempty_nil", func(t *testing.T) { assert.Equal(t, []string{}, CloneSliceOrEmpty(nil)) }) + t.Run("clonesliceorempty_empty", func(t *testing.T) { + assert.Equal(t, []string{}, CloneSliceOrEmpty([]string{})) + }) + t.Run("clonesliceorempty_sameness", func(t *testing.T) { - a := []string{"1", "2"} assert.Equal(t, CloneSlice(a), CloneSliceOrEmpty(a)) }) }