stringzy
Version:
A versatile string manipulation library providing a range of text utilities for JavaScript and Node.js applications.
68 lines (67 loc) • 3.53 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const node_test_1 = require("node:test");
const node_assert_1 = __importDefault(require("node:assert"));
const isEmail_1 = require("../../validations/isEmail");
(0, node_test_1.describe)("isEmail", () => {
//
// ✅ Basic valid emails
//
(0, node_test_1.it)("returns true for basic valid emails", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("foo@bar.com"), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test@example.org"), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("very.common@example.com"), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("long.email-address-with-hyphens@and.subdomains.example.com"), true);
});
//
// ✅ Special characters in local-part
//
(0, node_test_1.it)("returns true for special characters", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test+tag@example.com"), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("user.name+tag+sorting@example.com"), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test/test@example.com"), true);
});
//
// ✅ IPv4 address literal
//
(0, node_test_1.it)("returns true for IPv4 address literal", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("user@[192.168.1.1]"), true);
});
//
// ✅ Quoted local-parts (RFC 5322)
//
(0, node_test_1.it)("returns true for quoted local-parts", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)('"much.more unusual"@example.com'), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)('"very.unusual.@.unusual.com"@example.com'), true);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)('"very.(),:;<>[]".VERY."very@\\ "very".unusual"@strange.example.com'), true);
});
//
// ✅ IPv6 domain literal
//
(0, node_test_1.it)("returns true for IPv6 domain literals", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("user@[IPv6:2001:db8::1]"), true);
});
//
// ❌ Invalid emails
//
(0, node_test_1.it)("returns false for invalid emails", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)(""), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("@example.com"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test@"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test@.com"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test..test@example.com"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)(".test@example.com"), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)("test.@example.com"), false);
});
//
// ❌ Invalid quoted emails
//
(0, node_test_1.it)("returns false for invalid quoted local-parts", () => {
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)('"unclosed-quote@example.com'), false);
node_assert_1.default.strictEqual((0, isEmail_1.isEmail)('"missing"quotes@@example.com'), false);
});
});
;