UNPKG

15.4 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/findPhoneNumbers.test.js"],"names":["describe","it","metadata","should","deep","equal","phone","country","startsAt","endsAt","leniency","ext","expected_numbers","number","shift","length","thrower","possibleNumbers","extended","finder","PhoneNumberSearch","defaultCountry","hasNext","next","undefined","search"],"mappings":"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","sourcesContent":["// This is a legacy function.\r\n// Use `findNumbers()` instead.\r\n\r\nimport findNumbers, { searchPhoneNumbers } from './findPhoneNumbers'\r\nimport { PhoneNumberSearch } from './findPhoneNumbers_'\r\nimport metadata from '../metadata.min.json'\r\n\r\ndescribe('findPhoneNumbers', () => {\r\n\tit('should find numbers', () => {\r\n\t\tfindNumbers('2133734253', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 10\r\n\t\t}])\r\n\r\n\t\tfindNumbers('(213) 373-4253', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 14\r\n\t\t}])\r\n\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}])\r\n\r\n\t\t// Opening parenthesis issue.\r\n\t\t// https://github.com/catamphetamine/libphonenumber-js/issues/252\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 (that\\'s not even in the same country!) as written in the document.', 'US', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tphone : '2133734253',\r\n\t\t\tcountry : 'US',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}])\r\n\r\n\t\t// No default country.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Passing `options` and default country.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', 'US', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Passing `options`.\r\n\t\tfindNumbers('The number is +7 (800) 555-35-35 as written in the document.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}])\r\n\r\n\t\t// Not a phone number and a phone number.\r\n\t\tfindNumbers('Digits 12 are not a number, but +7 (800) 555-35-35 is.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\tstartsAt : 32,\r\n\t\t\tendsAt : 50\r\n\t\t}])\r\n\r\n\t\t// Phone number extension.\r\n\t\tfindNumbers('Date 02/17/2018 is not a number, but +7 (800) 555-35-35 ext. 123 is.', { leniency: 'VALID' }, metadata).should.deep.equal([{\r\n\t\t\tphone : '8005553535',\r\n\t\t\tcountry : 'RU',\r\n\t\t\text : '123',\r\n\t\t\tstartsAt : 37,\r\n\t\t\tendsAt : 64\r\n\t\t}])\r\n\t})\r\n\r\n\tit('shouldn\\'t find non-valid numbers', () => {\r\n\t\t// Not a valid phone number for US.\r\n\t\tfindNumbers('1111111111', 'US', metadata).should.deep.equal([])\r\n\t})\r\n\r\n\tit('should find non-European digits', () => {\r\n\t\t// E.g. in Iraq they don't write `+442323234` but rather `+٤٤٢٣٢٣٢٣٤`.\r\n\t\tfindNumbers('العَرَبِيَّة‎ +٤٤٣٣٣٣٣٣٣٣٣٣عَرَبِيّ‎', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'GB',\r\n\t\t\tphone : '3333333333',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 27\r\n\t\t}])\r\n\t})\r\n\r\n\tit('should iterate', () => {\r\n\t\tconst expected_numbers = [{\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t}, {\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2133734253',\r\n\t\t\t// number : '(213) 373-4253',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t}]\r\n\r\n\t\tfor (const number of searchPhoneNumbers('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', 'US', metadata)) {\r\n\t\t\tnumber.should.deep.equal(expected_numbers.shift())\r\n\t\t}\r\n\r\n\t\texpected_numbers.length.should.equal(0)\r\n\t})\r\n\r\n\tit('should work in edge cases', () => {\r\n\t\tlet thrower\r\n\r\n\t\t// No input\r\n\t\tfindNumbers('', metadata).should.deep.equal([])\r\n\r\n\t\t// No country metadata for this `require` country code\r\n\t\tthrower = () => findNumbers('123', 'ZZ', metadata)\r\n\t\tthrower.should.throw('Unknown country')\r\n\r\n\t\t// Numerical `value`\r\n\t\tthrower = () => findNumbers(2141111111, 'US')\r\n\t\tthrower.should.throw('A text for parsing must be a string.')\r\n\r\n\t\t// // No metadata\r\n\t\t// thrower = () => findNumbers('')\r\n\t\t// thrower.should.throw('`metadata` argument not passed')\r\n\t})\r\n\r\n\tit('shouldn\\'t find phone numbers which are not phone numbers', () => {\r\n\t\t// A timestamp.\r\n\t\tfindNumbers('2012-01-02 08:00', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// A valid number (not a complete timestamp).\r\n\t\tfindNumbers('2012-01-02 08', 'US', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2012010208',\r\n\t\t\tstartsAt : 0,\r\n\t\t\tendsAt : 13\r\n\t\t}])\r\n\r\n\t\t// Invalid parens.\r\n\t\tfindNumbers('213(3734253', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// Letters after phone number.\r\n\t\tfindNumbers('2133734253a', 'US', metadata).should.deep.equal([])\r\n\r\n\t\t// Valid phone (same as the one found in the UUID below).\r\n\t\tfindNumbers('The phone number is 231354125.', 'FR', metadata).should.deep.equal([{\r\n\t\t\tcountry : 'FR',\r\n\t\t\tphone : '231354125',\r\n\t\t\tstartsAt : 20,\r\n\t\t\tendsAt : 29\r\n\t\t}])\r\n\r\n\t\t// Not a phone number (part of a UUID).\r\n\t\t// Should parse in `{ extended: true }` mode.\r\n\t\tconst possibleNumbers = findNumbers('The UUID is CA801c26f98cd16e231354125ad046e40b.', 'FR', { extended: true }, metadata)\r\n\t\tpossibleNumbers.length.should.equal(3)\r\n\t\tpossibleNumbers[1].country.should.equal('FR')\r\n\t\tpossibleNumbers[1].phone.should.equal('231354125')\r\n\r\n\t\t// Not a phone number (part of a UUID).\r\n\t\t// Shouldn't parse by default.\r\n\t\tfindNumbers('The UUID is CA801c26f98cd16e231354125ad046e40b.', 'FR', metadata).should.deep.equal([])\r\n\t})\r\n})\r\n\r\ndescribe('PhoneNumberSearch', () => {\r\n\tit('should search for phone numbers', () => {\r\n\t\tconst finder = new PhoneNumberSearch('The number is +7 (800) 555-35-35 and not (213) 373-4253 as written in the document.', { defaultCountry: 'US' }, metadata)\r\n\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t})\r\n\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'US',\r\n\t\t\tphone : '2133734253',\r\n\t\t\t// number : '(213) 373-4253',\r\n\t\t\tstartsAt : 41,\r\n\t\t\tendsAt : 55\r\n\t\t})\r\n\r\n\t\tfinder.hasNext().should.equal(false)\r\n\t})\r\n\r\n\tit('should search for phone numbers (no options)', () => {\r\n\t\tconst finder = new PhoneNumberSearch('The number is +7 (800) 555-35-35', undefined, metadata)\r\n\t\tfinder.hasNext().should.equal(true)\r\n\t\tfinder.next().should.deep.equal({\r\n\t\t\tcountry : 'RU',\r\n\t\t\tphone : '8005553535',\r\n\t\t\t// number : '+7 (800) 555-35-35',\r\n\t\t\tstartsAt : 14,\r\n\t\t\tendsAt : 32\r\n\t\t})\r\n\t\tfinder.hasNext().should.equal(false)\r\n\t})\r\n\r\n\tit('should work in edge cases', () => {\r\n\t\t// No options\r\n\t\tconst search = new PhoneNumberSearch('', undefined, metadata)\r\n\r\n\t\t// No next element\r\n\t\tlet thrower = () => search.next()\r\n\t\tthrower.should.throw('No next element')\r\n\t})\r\n})"],"file":"findPhoneNumbers.test.js"}
\No newline at end of file