PATH:
opt
/
bitninja-dispatcher
/
node_modules
/
libphonenumber-js
/
source
import metadata from '../metadata.max.json' assert { type: 'json' } import Metadata from './metadata.js' import _getNumberType from './getNumberType.js' function getNumberType(...parameters) { parameters.push(metadata) return _getNumberType.apply(this, parameters) } describe('getNumberType', () => { it('should infer phone number type MOBILE', () => { getNumberType('9150000000', 'RU').should.equal('MOBILE') getNumberType('7912345678', 'GB').should.equal('MOBILE') getNumberType('51234567', 'EE').should.equal('MOBILE') }) it('should infer phone number types', () => { getNumberType('88005553535', 'RU').should.equal('TOLL_FREE') getNumberType('8005553535', 'RU').should.equal('TOLL_FREE') getNumberType('4957777777', 'RU').should.equal('FIXED_LINE') getNumberType('8030000000', 'RU').should.equal('PREMIUM_RATE') getNumberType('2133734253', 'US').should.equal('FIXED_LINE_OR_MOBILE') getNumberType('5002345678', 'US').should.equal('PERSONAL_NUMBER') }) it('should work when no country is passed', () => { getNumberType('+79150000000').should.equal('MOBILE') }) it('should return FIXED_LINE_OR_MOBILE when there is ambiguity', () => { // (no such country in the metadata, therefore no unit test for this `if`) }) it('should work in edge cases', function() { let thrower // // No metadata // thrower = () => _getNumberType({ phone: '+78005553535' }) // thrower.should.throw('`metadata` argument not passed') // Parsed phone number getNumberType({ phone: '8005553535', country: 'RU' }).should.equal('TOLL_FREE') // Invalid phone number type(getNumberType('123', 'RU')).should.equal('undefined') // Invalid country thrower = () => getNumberType({ phone: '8005553535', country: 'RUS' }) thrower.should.throw('Unknown country') // Numerical `value` thrower = () => getNumberType(89150000000, 'RU') thrower.should.throw('A phone number must either be a string or an object of shape { phone, [country] }.') // When `options` argument is passed. getNumberType('8005553535', 'RU', {}).should.equal('TOLL_FREE') getNumberType('+78005553535', {}).should.equal('TOLL_FREE') getNumberType({ phone: '8005553535', country: 'RU' }, {}).should.equal('TOLL_FREE') }) }) function type(something) { return typeof something }
[-] parsePhoneNumberFromString.test.js
[edit]
[-] metadata.js
[edit]
[-] PhoneNumber.js
[edit]
[-] AsYouTypeFormatter.PatternMatcher.d.ts
[edit]
[-] parsePhoneNumber.js
[edit]
[-] isPossiblePhoneNumber.test.js
[edit]
[-] findNumbers.js
[edit]
[-] isPossibleNumber.js
[edit]
[-] getNumberType.js
[edit]
[-] AsYouTypeFormatter.PatternMatcher.js
[edit]
[-] parse_.js
[edit]
[-] getExampleNumber.test.js
[edit]
[-] AsYouTypeParser.js
[edit]
[+]
..
[-] validate_.js
[edit]
[-] parsePhoneNumberFromString_.js
[edit]
[-] AsYouTypeFormatter.PatternParser.d.ts
[edit]
[-] searchPhoneNumbersInText.test.js
[edit]
[-] getCountries.test.js
[edit]
[-] searchPhoneNumbersInText.js
[edit]
[-] AsYouTypeFormatter.PatternParser.test.js
[edit]
[-] formatNumberForMobileDialing.js
[edit]
[-] getCountryCallingCode.js
[edit]
[-] findPhoneNumbers.test.js
[edit]
[-] parsePhoneNumber.test.js
[edit]
[-] isValidPhoneNumber.test.js
[edit]
[-] AsYouType.test.js
[edit]
[-] getCountries.js
[edit]
[-] validate.test.js
[edit]
[-] AsYouTypeFormatter.js
[edit]
[-] PhoneNumberMatcher.js
[edit]
[-] findNumbers_.js
[edit]
[-] formatIncompletePhoneNumber.test.js
[edit]
[-] format.test.js
[edit]
[-] findPhoneNumbers.js
[edit]
[-] searchNumbers.js
[edit]
[-] findPhoneNumbersInText.js
[edit]
[-] findPhoneNumbersInText.test.js
[edit]
[-] metadata.test.js
[edit]
[-] parse.js
[edit]
[-] validatePhoneNumberLength.test.js
[edit]
[-] findNumbers.test.js
[edit]
[+]
tools
[-] parsePhoneNumberFromString.js
[edit]
[-] getCountryCallingCode.test.js
[edit]
[-] isPossibleNumber.test.js
[edit]
[-] parse.test.js
[edit]
[-] parsePhoneNumber_.js
[edit]
[-] ParseError.js
[edit]
[-] PhoneNumber.test.js
[edit]
[-] AsYouTypeFormatter.PatternMatcher.test.js
[edit]
[-] getNumberType.test.js
[edit]
[-] AsYouTypeFormatter.PatternParser.js
[edit]
[-] validatePhoneNumberLength.js
[edit]
[-] isValidPhoneNumber.js
[edit]
[+]
helpers
[-] parseIncompletePhoneNumber.test.js
[edit]
[-] formatNumberForMobileDialing.test.js
[edit]
[-] isValidNumberForRegion_.js
[edit]
[-] PhoneNumberMatcher.test.js
[edit]
[-] isPossibleNumber_.js
[edit]
[-] AsYouTypeFormatter.util.js
[edit]
[-] format.js
[edit]
[-] isValidNumberForRegion.test.js
[edit]
[-] AsYouType.js
[edit]
[-] AsYouTypeFormatter.complete.js
[edit]
[+]
findNumbers
[-] getExampleNumber.js
[edit]
[-] format_.js
[edit]
[-] isPossiblePhoneNumber.js
[edit]
[-] findPhoneNumbers_.js
[edit]
[-] isValidNumberForRegion.js
[edit]
[-] validate.js
[edit]
[-] AsYouTypeState.js
[edit]
[-] formatIncompletePhoneNumber.js
[edit]
[-] constants.js
[edit]
[-] parseIncompletePhoneNumber.js
[edit]
[-] searchNumbers.test.js
[edit]
[-] AsYouTypeFormatter.util.test.js
[edit]