UNPKG

operator-checker

Version:

Iranian mobile operator detection package for Vue 3 and TypeScript

157 lines 10.4 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var operator_checker_1 = require("../operator-checker"); describe('Operator Checker', function () { describe('detectOperator', function () { test('should detect Irancell numbers', function () { expect((0, operator_checker_1.detectOperator)('09301234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09331234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09351234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09361234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09371234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09381234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('09391234567')).toBe(operator_checker_1.Operator.IRANCELL); }); test('should detect Hamrah-e-Aval numbers', function () { expect((0, operator_checker_1.detectOperator)('09101234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09111234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09121234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09131234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09141234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09151234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09161234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09171234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09181234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09191234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09901234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09911234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09921234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09931234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); expect((0, operator_checker_1.detectOperator)('09941234567')).toBe(operator_checker_1.Operator.HAMRAH_E_AVAL); }); test('should detect RighTel numbers', function () { expect((0, operator_checker_1.detectOperator)('09201234567')).toBe(operator_checker_1.Operator.RIGHTEL); expect((0, operator_checker_1.detectOperator)('09211234567')).toBe(operator_checker_1.Operator.RIGHTEL); expect((0, operator_checker_1.detectOperator)('09221234567')).toBe(operator_checker_1.Operator.RIGHTEL); }); test('should handle numbers with country code', function () { expect((0, operator_checker_1.detectOperator)('989301234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('+989301234567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('98 0930 123 4567')).toBe(operator_checker_1.Operator.IRANCELL); }); test('should handle formatted numbers', function () { expect((0, operator_checker_1.detectOperator)('0930-123-4567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('0930 123 4567')).toBe(operator_checker_1.Operator.IRANCELL); expect((0, operator_checker_1.detectOperator)('0930.123.4567')).toBe(operator_checker_1.Operator.IRANCELL); }); test('should return null for invalid numbers', function () { expect((0, operator_checker_1.detectOperator)('')).toBeNull(); expect((0, operator_checker_1.detectOperator)('123')).toBeNull(); expect((0, operator_checker_1.detectOperator)('09311234567')).toBeNull(); // Invalid prefix expect((0, operator_checker_1.detectOperator)('09231234567')).toBeNull(); // Invalid prefix expect((0, operator_checker_1.detectOperator)('abc')).toBeNull(); expect((0, operator_checker_1.detectOperator)('12345678901')).toBeNull(); // Not Iranian mobile }); test('should handle null and undefined', function () { expect((0, operator_checker_1.detectOperator)(null)).toBeNull(); expect((0, operator_checker_1.detectOperator)(undefined)).toBeNull(); }); }); describe('getOperatorInfo', function () { test('should return operator info for valid numbers', function () { var info = (0, operator_checker_1.getOperatorInfo)('09301234567'); expect(info).toEqual({ code: operator_checker_1.Operator.IRANCELL, name: 'Irancell', nameFa: 'ایرانسل', prefixes: ['0930', '0933', '0935', '0936', '0937', '0938', '0939'], }); }); test('should return null for invalid numbers', function () { expect((0, operator_checker_1.getOperatorInfo)('123')).toBeNull(); expect((0, operator_checker_1.getOperatorInfo)('')).toBeNull(); }); }); describe('getOperatorName', function () { test('should return English operator names', function () { expect((0, operator_checker_1.getOperatorName)('09301234567')).toBe('Irancell'); expect((0, operator_checker_1.getOperatorName)('09101234567')).toBe('Hamrah-e-Aval'); expect((0, operator_checker_1.getOperatorName)('09201234567')).toBe('RighTel'); }); test('should return null for invalid numbers', function () { expect((0, operator_checker_1.getOperatorName)('123')).toBeNull(); expect((0, operator_checker_1.getOperatorName)('')).toBeNull(); }); }); describe('getOperatorNameFa', function () { test('should return Persian operator names', function () { expect((0, operator_checker_1.getOperatorNameFa)('09301234567')).toBe('ایرانسل'); expect((0, operator_checker_1.getOperatorNameFa)('09101234567')).toBe('همراه اول'); expect((0, operator_checker_1.getOperatorNameFa)('09201234567')).toBe('رایتل'); }); test('should return null for invalid numbers', function () { expect((0, operator_checker_1.getOperatorNameFa)('123')).toBeNull(); expect((0, operator_checker_1.getOperatorNameFa)('')).toBeNull(); }); }); describe('isValidIranianMobileNumber', function () { test('should validate correct Iranian mobile numbers', function () { expect((0, operator_checker_1.isValidIranianMobileNumber)('09123456789')).toBe(true); expect((0, operator_checker_1.isValidIranianMobileNumber)('09351234567')).toBe(true); expect((0, operator_checker_1.isValidIranianMobileNumber)('09201234567')).toBe(true); expect((0, operator_checker_1.isValidIranianMobileNumber)('989123456789')).toBe(true); expect((0, operator_checker_1.isValidIranianMobileNumber)('+989123456789')).toBe(true); }); test('should reject invalid numbers', function () { expect((0, operator_checker_1.isValidIranianMobileNumber)('')).toBe(false); expect((0, operator_checker_1.isValidIranianMobileNumber)('123')).toBe(false); expect((0, operator_checker_1.isValidIranianMobileNumber)('08123456789')).toBe(false); // Doesn't start with 9 expect((0, operator_checker_1.isValidIranianMobileNumber)('0912345678')).toBe(false); // Too short expect((0, operator_checker_1.isValidIranianMobileNumber)('091234567890')).toBe(false); // Too long expect((0, operator_checker_1.isValidIranianMobileNumber)('abc')).toBe(false); }); test('should handle null and undefined', function () { expect((0, operator_checker_1.isValidIranianMobileNumber)(null)).toBe(false); expect((0, operator_checker_1.isValidIranianMobileNumber)(undefined)).toBe(false); }); }); describe('OPERATORS constant', function () { test('should have correct operator definitions', function () { expect(operator_checker_1.OPERATORS[operator_checker_1.Operator.IRANCELL]).toEqual({ code: operator_checker_1.Operator.IRANCELL, name: 'Irancell', nameFa: 'ایرانسل', prefixes: ['0930', '0933', '0935', '0936', '0937', '0938', '0939'], }); expect(operator_checker_1.OPERATORS[operator_checker_1.Operator.HAMRAH_E_AVAL]).toEqual({ code: operator_checker_1.Operator.HAMRAH_E_AVAL, name: 'Hamrah-e-Aval', nameFa: 'همراه اول', prefixes: [ '0910', '0911', '0912', '0913', '0914', '0915', '0916', '0917', '0918', '0919', '0990', '0991', '0992', '0993', '0994', ], }); expect(operator_checker_1.OPERATORS[operator_checker_1.Operator.RIGHTEL]).toEqual({ code: operator_checker_1.Operator.RIGHTEL, name: 'RighTel', nameFa: 'رایتل', prefixes: ['0920', '0921', '0922'], }); }); }); }); //# sourceMappingURL=operator-checker.test.js.map