Extract normalizeLabels to internal/util/strings.go

- Created internal/util/strings.go with NormalizeLabels function
- Added comprehensive tests in internal/util/strings_test.go
- Updated internal/rpc/server_issues_epics.go to use util.NormalizeLabels
- Updated cmd/bd/list.go and cmd/bd/ready.go to use util.NormalizeLabels
- Updated cmd/bd/list_test.go to use util.NormalizeLabels
- Removed duplicate implementations
- All tests pass

Fixes bd-fb95094c.6

Amp-Thread-ID: https://ampcode.com/threads/T-edb3c286-cd60-4231-94cd-edaf75d84a3d
Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Steve Yegge
2025-11-06 20:00:08 -08:00
parent 5044ec3fdf
commit 9520e7a2e2
6 changed files with 141 additions and 47 deletions

View File

@@ -10,6 +10,7 @@ import (
"github.com/steveyegge/beads/internal/storage/sqlite"
"github.com/steveyegge/beads/internal/types"
"github.com/steveyegge/beads/internal/util"
)
// listTestHelper provides test setup and assertion methods
@@ -155,7 +156,7 @@ func TestListCommand(t *testing.T) {
t.Run("normalize labels", func(t *testing.T) {
labels := []string{" bug ", "critical", "", "bug", " feature "}
normalized := normalizeLabels(labels)
normalized := util.NormalizeLabels(labels)
expected := []string{"bug", "critical", "feature"}
h.assertCount(len(normalized), len(expected), "normalized labels")