Files

64 lines
1.6 KiB
Go

package auth
import "testing"
func TestNormalizePhone(t *testing.T) {
valid := []string{
"+15551234567",
"+442071234567",
"+12345678",
"+123456789012345",
}
for _, in := range valid {
got, err := NormalizePhone(in)
if err != nil {
t.Errorf("NormalizePhone(%q) error: %v", in, err)
}
if got != in {
t.Errorf("NormalizePhone(%q) = %q, want unchanged", in, got)
}
}
invalid := []string{
"",
"15551234567",
"+",
"+1234567",
"+1234567890123456",
"+1555abc4567",
"+1-555-123-4567",
"+1555 1234567",
}
for _, in := range invalid {
if _, err := NormalizePhone(in); err == nil {
t.Errorf("NormalizePhone(%q) accepted an invalid number", in)
}
}
if got, err := NormalizePhone(" +15551234567 "); err != nil || got != "+15551234567" {
t.Errorf("NormalizePhone trimmed = %q err=%v", got, err)
}
}
func TestNormalizeIdentifier(t *testing.T) {
kind, value, err := NormalizeIdentifier(" User@Test.Local ")
if err != nil || kind != IdentifierEmail || value != "user@test.local" {
t.Fatalf("email identifier = %q/%q err=%v", kind, value, err)
}
kind, value, err = NormalizeIdentifier("+15551234567")
if err != nil || kind != IdentifierPhone || value != "+15551234567" {
t.Fatalf("phone identifier = %q/%q err=%v", kind, value, err)
}
if _, _, err := NormalizeIdentifier(""); err == nil {
t.Errorf("empty identifier accepted")
}
if _, _, err := NormalizeIdentifier("no-at-sign"); err == nil {
t.Errorf("non-phone identifier accepted")
}
if _, _, err := NormalizeIdentifier("@bad"); err == nil {
t.Errorf("malformed email accepted")
}
}