package main
import (
"os/user"
"path/filepath"
"reflect"
"testing"
)
func TestResolveRoot(t *testing.T) {
current, err := user.Current()
if err != nil {
t.Fatal(err)
}
t.Run("nested root", func(t *testing.T) {
resolved, cloneRoot, err := resolveRoot(current.Username, "repos/nested")
if err != nil {
t.Fatal(err)
}
if resolved != filepath.Join(current.HomeDir, "repos", "nested") {
t.Fatalf("got resolved root %q", resolved)
}
if cloneRoot != "repos/nested" {
t.Fatalf("got clone root %q", cloneRoot)
}
})
t.Run("empty root uses home", func(t *testing.T) {
resolved, cloneRoot, err := resolveRoot(current.Username, "")
if err != nil {
t.Fatal(err)
}
if resolved != current.HomeDir {
t.Fatalf("got resolved root %q", resolved)
}
if cloneRoot != "" {
t.Fatalf("got clone root %q", cloneRoot)
}
})
}
func TestParseHiddenRepositories(t *testing.T) {
hidden := parseHiddenRepositories(" alpha ;beta;; gamma/delta ")
want := []string{"alpha", "beta", "gamma/delta"}
if !reflect.DeepEqual(hidden, want) {
t.Fatalf("got hidden repositories %#v, want %#v", hidden, want)
}
}