feat(auth): add user profile, phone login, and account deletion
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
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")
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user