operator-checker
Version:
Iranian mobile operator detection package for Vue 3 and TypeScript
157 lines • 10.4 kB
JavaScript
;
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