58 lines
2.1 KiB
TypeScript
58 lines
2.1 KiB
TypeScript
import { parsePhoneNumberWithError } from "libphonenumber-js";
|
|
import { PhoneNumber } from "../phone-number";
|
|
|
|
describe("PhoneNumber", () => {
|
|
const validPhone = "+14155552671"; // Número válido en formato internacional
|
|
const invalidPhone = "12345"; // Número inválido
|
|
const nullablePhone = "";
|
|
|
|
test("debe crear un número de teléfono válido", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
expect(result.data).toBeInstanceOf(PhoneNumber);
|
|
});
|
|
|
|
test("debe fallar al crear un número de teléfono inválido", () => {
|
|
const result = PhoneNumber.create(invalidPhone);
|
|
expect(result.isFailure).toBe(true);
|
|
expect(result.getError()?.message).toBe(
|
|
"Please specify a valid phone number (include the international prefix)."
|
|
);
|
|
});
|
|
|
|
test("debe obtener el valor del número de teléfono", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
const phoneNumber = result.data;
|
|
expect(phoneNumber?.getProps()).toBe(validPhone);
|
|
});
|
|
|
|
test("debe obtener el código de país del número", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
const phoneNumber = result.data;
|
|
expect(phoneNumber?.getCountryCode()).toBe("US");
|
|
});
|
|
|
|
test("debe obtener el número nacional del teléfono", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
const phoneNumber = result.data;
|
|
expect(phoneNumber?.getNationalNumber()).toBe("4155552671");
|
|
});
|
|
|
|
test("debe obtener el número formateado", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
const phoneNumber = result.data;
|
|
expect(phoneNumber?.getNumber()).toBe(parsePhoneNumberWithError(validPhone).number.toString());
|
|
});
|
|
|
|
test("debe devolver undefined para la extensión si no hay una", () => {
|
|
const result = PhoneNumber.create(validPhone);
|
|
expect(result.isSuccess).toBe(true);
|
|
const phoneNumber = result.data;
|
|
expect(phoneNumber?.getExtension()).toBeUndefined();
|
|
});
|
|
});
|