package tools import ( "os" "path/filepath" "slices" "testing" ) func TestLess(t *testing.T) { tests := []struct { a, b string ok bool }{ {"2.1.104", "2.1.105", true}, {"2.1.105", "2.1.105", false}, {"2.10.0", "2.9.9", false}, {"1.2.9", "1.2.11", true}, } for _, tt := range tests { if Less(tt.a, tt.b) != tt.ok { t.Errorf("Kleiner(%s, %s) != %v", tt.a, tt.b, tt.ok) } } } func TestTarget(t *testing.T) { for version, target := range map[string]string{"1.19.3": "opencode@1", "2.0.1": "opencode@2", "": "opencode@1"} { if got := Target("opencode", version); got != target { t.Errorf("Ziel(opencode, %q) = %s", version, got) } } } func TestInRepo(t *testing.T) { repo := t.TempDir() if got := InRepo(repo); !slices.Equal(got, []string{"claude", "opencode"}) { t.Errorf("leeres Repo: %v", got) } os.WriteFile(filepath.Join(repo, "CLAUDE.md"), nil, 0o644) if got := InRepo(repo); !slices.Equal(got, []string{"claude"}) { t.Errorf("nur CLAUDE.md: %v", got) } }