- Add internal/deps package for dependency management - Check for bd before gt install and gt rig add - Auto-install bd via go install if missing - Version check warns if bd is too old (min: 0.43.0) Closes #22 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
62 lines
1.4 KiB
Go
62 lines
1.4 KiB
Go
package deps
|
|
|
|
import "testing"
|
|
|
|
func TestParseBeadsVersion(t *testing.T) {
|
|
tests := []struct {
|
|
input string
|
|
expected string
|
|
}{
|
|
{"bd version 0.43.0 (dev: main@3e1378e122c6)", "0.43.0"},
|
|
{"bd version 0.43.0", "0.43.0"},
|
|
{"bd version 1.2.3", "1.2.3"},
|
|
{"bd version 10.20.30 (release)", "10.20.30"},
|
|
{"some other output", ""},
|
|
{"", ""},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
result := parseBeadsVersion(tt.input)
|
|
if result != tt.expected {
|
|
t.Errorf("parseBeadsVersion(%q) = %q, want %q", tt.input, result, tt.expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCompareVersions(t *testing.T) {
|
|
tests := []struct {
|
|
a, b string
|
|
expected int
|
|
}{
|
|
{"0.43.0", "0.43.0", 0},
|
|
{"0.43.0", "0.42.0", 1},
|
|
{"0.42.0", "0.43.0", -1},
|
|
{"1.0.0", "0.99.99", 1},
|
|
{"0.43.1", "0.43.0", 1},
|
|
{"0.43.0", "0.43.1", -1},
|
|
}
|
|
|
|
for _, tt := range tests {
|
|
result := compareVersions(tt.a, tt.b)
|
|
if result != tt.expected {
|
|
t.Errorf("compareVersions(%q, %q) = %d, want %d", tt.a, tt.b, result, tt.expected)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCheckBeads(t *testing.T) {
|
|
// This test depends on whether bd is installed in the test environment
|
|
status, version := CheckBeads()
|
|
|
|
// We expect bd to be installed in dev environment
|
|
if status == BeadsNotFound {
|
|
t.Skip("bd not installed, skipping integration test")
|
|
}
|
|
|
|
if status == BeadsOK && version == "" {
|
|
t.Error("CheckBeads returned BeadsOK but empty version")
|
|
}
|
|
|
|
t.Logf("CheckBeads: status=%d, version=%s", status, version)
|
|
}
|