package who
import "testing"
func TestIsValidUsername(t *testing.T) {
check := func(in string, want bool) {
t.Helper()
if got := IsValidUsername(in); got != want {
t.Errorf("IsValidUsername(%q): got %v, want %v",
in, got, want)
}
}
check("alice", true)
check("a", true)
check("a-b", true)
check("a_b", true)
check("a123", true)
check("", false)
check("Alice", false) // uppercase
check("1alice", false) // starts with digit
check("alice.bob", false) // dot (sub-username)
check("alice@bob", false) // disallowed char
check("aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", false) // 33 chars
}
func TestIsSubUsername(t *testing.T) {
check := func(in string, want bool) {
t.Helper()
if got := IsSubUsername(in); got != want {
t.Errorf("IsSubUsername(%q): got %v, want %v",
in, got, want)
}
}
check("alice.bob", true)
check("alice", false)
check("alice.bob.charlie", false) // two dots
check(".bob", false)
check("alice.", false)
}
func TestParentUsername(t *testing.T) {
check := func(in, want string) {
t.Helper()
if got := ParentUsername(in); got != want {
t.Errorf("ParentUsername(%q): got %q, want %q",
in, got, want)
}
}
check("alice.bob", "alice")
check("alice", "")
}