import { describe, it, expect } from "vitest";
import { normalizeUsPhone, isValidUsPhone, formatUsPhone } from "../phone";

describe("US phone helpers", () => {
  it("normalizes to 10 digits, dropping a leading country code", () => {
    expect(normalizeUsPhone("(512) 555-1234")).toBe("5125551234");
    expect(normalizeUsPhone("+1 512 555 1234")).toBe("5125551234");
    expect(normalizeUsPhone("1-512-555-1234")).toBe("5125551234");
  });

  it("validates exactly 10 US digits", () => {
    expect(isValidUsPhone("5125551234")).toBe(true);
    expect(isValidUsPhone("512555123")).toBe(false);
    expect(isValidUsPhone("+15125551234")).toBe(true);
    expect(isValidUsPhone("")).toBe(false);
  });

  it("formats progressively for display", () => {
    expect(formatUsPhone("512")).toBe("512");
    expect(formatUsPhone("512555")).toBe("(512) 555");
    expect(formatUsPhone("5125551234")).toBe("(512) 555-1234");
  });
});
