UNPKG

qgenutils

Version:

A security-first Node.js utility library providing authentication, HTTP operations, URL processing, validation, datetime formatting, and template rendering. Designed as a lightweight alternative to heavy npm packages with comprehensive error handling and

57 lines (50 loc) 2.59 kB
/** * Unit tests for advanced validation utilities * * These tests ensure advanced validation functions maintain security-first patterns * while providing reliable field validation with comprehensive error reporting. * All functions are tested for both valid inputs and malicious/malformed data. */ const validateEmail = require('./validateEmail'); const validateRequired = require('./validateRequired'); describe('Advanced Validation Utilities', () => { describe('validateEmail', () => { test('should validate correct email formats', () => { expect(validateEmail('user@example.com')).toBe(''); expect(validateEmail('test.email@domain.co.uk')).toBe(''); expect(validateEmail('user+tag@subdomain.example.org')).toBe(''); expect(validateEmail('simple@test.io')).toBe(''); }); test('should reject invalid email formats', () => { expect(validateEmail('invalid-email')).toBe('Please enter a valid email address'); expect(validateEmail('user@')).toBe('Please enter a valid email address'); expect(validateEmail('@domain.com')).toBe('Please enter a valid email address'); expect(validateEmail('user@domain')).toBe('Please enter a valid email address'); expect(validateEmail('user.domain.com')).toBe('Please enter a valid email address'); }); test('should handle empty or invalid input types', () => { expect(validateEmail('')).toBe('Email address is required'); expect(validateEmail(' ')).toBe('Email address is required'); expect(validateEmail(null)).toBe('Email address is required'); expect(validateEmail(undefined)).toBe('Email address is required'); expect(validateEmail(123)).toBe('Email address is required'); }); test('should sanitize input before validation', () => { expect(validateEmail(' user@example.com ')).toBe(''); expect(validateEmail('user@example.com\x00')).toBe(''); }); }); describe('validateRequired', () => { test('should accept valid non-empty values', () => { expect(validateRequired('test', 'Field')).toBe(''); expect(validateRequired('valid input', 'Input')).toBe(''); expect(validateRequired('123', 'Number')).toBe(''); }); test('should reject empty or invalid values', () => { expect(validateRequired('', 'Field')).toBe('Field is required'); expect(validateRequired(' ', 'Field')).toBe('Field is required'); expect(validateRequired(null, 'Field')).toBe('Field is required'); expect(validateRequired(undefined, 'Field')).toBe('Field is required'); }); }); });