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") } }