Skip to main content
Glama
phone-validation.test.tsβ€’1.42 kB
import { describe, it, expect } from 'vitest'; import { PHONE_METADATA_SOURCE, PhoneValidationError, isPossiblePhoneNumber, isValidPhoneNumber, validatePhoneNumber, } from '../../src/utils/validation/phone-validation.js'; describe('phone validation utilities', () => { it('validates a correct E.164 number', () => { const result = validatePhoneNumber('+12025550134'); expect(result.valid).toBe(true); expect(result.e164).toBe('+12025550134'); expect(result.error).toBeUndefined(); }); it('produces structured error for too-short numbers', () => { const result = validatePhoneNumber('+1202'); expect(result.valid).toBe(false); expect(result.error).toBeInstanceOf(PhoneValidationError); expect(result.error?.code).toBe('TOO_SHORT'); }); it('applies default country when missing country code', () => { const result = validatePhoneNumber('2025550134'); expect(result.valid).toBe(true); expect(result.e164).toBe('+12025550134'); }); it('returns metadata source indicator', () => { expect(['default', 'min']).toContain(PHONE_METADATA_SOURCE); }); it('detects possible and valid numbers correctly', () => { expect(isPossiblePhoneNumber('+12025550134')).toBe(true); expect(isValidPhoneNumber('+12025550134')).toBe(true); expect(isPossiblePhoneNumber('12345')).toBe(false); expect(isValidPhoneNumber('12345')).toBe(false); }); });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kesslerio/attio-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server