64 lines
1.6 KiB
Go
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")
|
|
}
|
|
}
|