nigeria-validator
Version:
Validate and format common Nigerian data: phone numbers, BVNs, bank codes, etc.
52 lines (45 loc) • 1.52 kB
JavaScript
const {
isValidPhone,
formatPhone,
isValidBVN,
isValidNIN,
isValidBankCode,
getBankName,
isValidState,
getLGAs,
isValidLGA,
getNigerianNetwork
} = require('./src');
test('Phone number validation works', () => {
expect(isValidPhone('08034567890')).toBe(true);
expect(isValidPhone('2348034567890')).toBe(true);
expect(isValidPhone('07000000000')).toBe(false);
});
test('Phone number formatting works', () => {
expect(formatPhone('+2348034567890')).toBe('08034567890');
expect(formatPhone('08034567890', 'intl')).toBe('+2348034567890');
});
test('BVN validation works', () => {
expect(isValidBVN('22345678901')).toBe(true);
expect(isValidBVN('12345')).toBe(false);
});
test('NIN validation works', () => {
expect(isValidNIN('12345678901')).toBe(true);
expect(isValidNIN('123')).toBe(false);
});
test('Bank code validation and name lookup', () => {
expect(isValidBankCode('058')).toBe(true);
expect(getBankName('058')).toBe('GTBank');
expect(getBankName('000')).toBe('Unknown Bank');
});
test('State and LGA validation', () => {
expect(isValidState('Abia')).toBe(true);
expect(isValidLGA('Abia', 'Umuahia North')).toBe(true);
expect(isValidLGA('Abia', 'Nonexistent')).toBe(false);
expect(getLGAs('Abia')).toContain('Aba North');
});
test('Get Nigerian mobile network', () => {
expect(getNigerianNetwork('08034567890')).toBe('MTN');
expect(getNigerianNetwork('09090000000')).toBe('9mobile');
expect(getNigerianNetwork('07000000000')).toBe('Unknown Network');
});