stringzy
Version:
A versatile string manipulation library providing a range of text utilities for JavaScript and Node.js applications.
40 lines (39 loc) • 2.51 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 isPalindrome_1 = require("../../validations/isPalindrome");
(0, node_test_1.describe)('isPalindrome', () => {
(0, node_test_1.it)('returns true for simple palindromes', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('racecar'), true);
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('madam'), true);
});
(0, node_test_1.it)('returns false for non-palindromes', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('hello'), false);
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('world'), false);
});
(0, node_test_1.it)('is case-insensitive', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('RaceCar'), true);
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('MadAm'), true);
});
(0, node_test_1.it)('ignores punctuation and spaces', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('A man, a plan, a canal: Panama'), true);
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('No lemon, no melon!'), true);
});
(0, node_test_1.it)('returns true for empty string and single characters', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)(''), true);
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('x'), true);
});
(0, node_test_1.it)('handles strings with only special characters', () => {
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('?!'), true); // cleans to ''
node_assert_1.default.strictEqual((0, isPalindrome_1.isPalindrome)('!@#$$#@!'), true); // also cleans to ''
});
(0, node_test_1.it)('throws an error if input is not a string', () => {
node_assert_1.default.throws(() => (0, isPalindrome_1.isPalindrome)(123), /Input must be a string/);
node_assert_1.default.throws(() => (0, isPalindrome_1.isPalindrome)(null), /Input must be a string/);
node_assert_1.default.throws(() => (0, isPalindrome_1.isPalindrome)(undefined), /Input must be a string/);
});
});
;