@deposits/validators
Version:
A collection of Fintech-specific and general-purpose validators, designed to extend popular validation libraries like Vuelidate, Zod, and yup.
59 lines (48 loc) • 2.1 kB
JavaScript
import { email } from "./index";
import { expect, test, describe } from "@jest/globals";
describe("email", () => {
test("Test a valid email", () => {
expect(email("eric@deposits.inc")).toBe(true);
expect(email("eric.mcwinner@deposits.inc")).toBe(true);
expect(email("ericmcwinner01@deposits.inc")).toBe(true);
expect(email("ericmcwinner01@deposits.inc")).toBe(true);
});
test("Test an invalid email", () => {
expect(email("eric@@deposits.inc")).toBe(false);
});
test("Test fails for emails with any special characters", () => {
expect(email("erick+01@deposits.inc")).toBe(false);
expect(email("erick+@deposits.inc")).toBe(false);
expect(email("erick?@deposits.inc")).toBe(false);
expect(email("erick?01@deposits.inc")).toBe(false);
expect(email("eric=@deposits.inc")).toBe(false);
expect(email("erick-@deposits.inc")).toBe(false);
expect(email("erick!@deposits.inc")).toBe(false);
});
test("Test email starting with dot", () => {
expect(email(".eric@deposits.inc")).toBe(false);
});
test("Test email ending with dot before at sign", () => {
expect(email("eric.@deposits.inc")).toBe(false);
});
test("Test email with multiple dots in domain part", () => {
expect(email("eric@deposits..inc")).toBe(false);
});
test("Test email where local part is only digits", () => {
expect(email("12345@deposits.inc")).toBe(true);
});
test("Test email with hyphen in domain part", () => {
expect(email("eric@deposits-inc.com")).toBe(true);
expect(email("eric@deposits-inc-.com")).toBe(false);
expect(email("eric@-deposits-inc.com")).toBe(false);
expect(email("eric@deposits-inc.-com")).toBe(false);
expect(email("eric@deposits-inc.com-")).toBe(false);
expect(email("eric@deposits-inc.-com-")).toBe(false);
});
test("Ensure the maximum characters is 63", () => {
expect(email("abcdefghijklmnop2stdsdsuvwxyz123456@abcdefghijklmnop-size-32.com")).toBe(false);
});
test("Test email with subdomain", () => {
expect(email("eric@mailer.deposits.inc")).toBe(true);
});
});