diff --git a/utils/librarypath/librarypath.go b/utils/librarypath/librarypath.go index e3e1c20..497e079 100644 --- a/utils/librarypath/librarypath.go +++ b/utils/librarypath/librarypath.go @@ -13,8 +13,6 @@ import ( "github.com/hashload/boss/pkg/pkgmanager" - "slices" - "github.com/hashload/boss/internal/core/domain" "github.com/hashload/boss/pkg/consts" "github.com/hashload/boss/pkg/env" @@ -204,12 +202,13 @@ func getDefaultPath(fullPath bool, rootPath string) []string { // cleanEmpty removes empty strings from a slice. func cleanEmpty(paths []string) []string { - for index, value := range paths { - if value == "" { - paths = slices.Delete(paths, index, index+1) + cleaned := paths[:0] + for _, value := range paths { + if value != "" { + cleaned = append(cleaned, value) } } - return paths + return cleaned } // getNewBrowsingPathsFromDir returns a list of new browsing paths from a directory. diff --git a/utils/librarypath/librarypath_test.go b/utils/librarypath/librarypath_test.go index 78a4f10..534e624 100644 --- a/utils/librarypath/librarypath_test.go +++ b/utils/librarypath/librarypath_test.go @@ -46,6 +46,51 @@ func TestCleanPath(t *testing.T) { } } +// TestCleanEmpty tests empty string removal from a slice. +func TestCleanEmpty(t *testing.T) { + tests := []struct { + name string + in []string + want []string + }{ + { + name: "no empties", + in: []string{"a", "b"}, + want: []string{"a", "b"}, + }, + { + name: "single empty", + in: []string{"a", "", "b"}, + want: []string{"a", "b"}, + }, + { + name: "multiple empties", + in: []string{"", "a", "", "b", ""}, + want: []string{"a", "b"}, + }, + { + name: "all empty", + in: []string{"", ""}, + want: []string{}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := cleanEmpty(tt.in) + + if len(result) != len(tt.want) { + t.Fatalf("cleanEmpty() = %v, want %v", result, tt.want) + } + for i, v := range result { + if v != tt.want[i] { + t.Errorf("cleanEmpty()[%d] = %q, want %q", i, v, tt.want[i]) + } + } + }) + } +} + // TestGetNewBrowsingPaths tests browsing paths retrieval. func TestGetNewBrowsingPaths(t *testing.T) { tempDir := t.TempDir()