HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux ip-172-31-4-197 6.8.0-1036-aws #38~22.04.1-Ubuntu SMP Fri Aug 22 15:44:33 UTC 2025 x86_64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/api-parametros/node_modules/libphonenumber-js/source/parseIncompletePhoneNumber.test.js
import parseIncompletePhoneNumber, { parsePhoneNumberCharacter } from './parseIncompletePhoneNumber.js'

describe('parseIncompletePhoneNumber', () => {
	it('should parse phone number character', () => {
		// Accepts leading `+`.
		parsePhoneNumberCharacter('+').should.equal('+')

		// Doesn't accept non-leading `+`.
		expect(parsePhoneNumberCharacter('+', '+')).to.be.undefined

		// Parses digits.
		parsePhoneNumberCharacter('1').should.equal('1')

		// Parses non-European digits.
		parsePhoneNumberCharacter('٤').should.equal('4')

		// Dismisses other characters.
		expect(parsePhoneNumberCharacter('-')).to.be.undefined
	})

	it('should parse incomplete phone number', () => {
		parseIncompletePhoneNumber('').should.equal('')

		// Doesn't accept non-leading `+`.
		parseIncompletePhoneNumber('++').should.equal('+')

		// Accepts leading `+`.
		parseIncompletePhoneNumber('+7 800 555').should.equal('+7800555')

		// Parses digits.
		parseIncompletePhoneNumber('8 (800) 555').should.equal('8800555')

		// Parses non-European digits.
		parseIncompletePhoneNumber('+٤٤٢٣٢٣٢٣٤').should.equal('+442323234')
	})

	it('should work with a new `context` argument in `parsePhoneNumberCharacter()` function (international number)', () => {
		let stopped = false

		const emit = (event) => {
			switch (event) {
				case 'end':
					stopped = true
					break
			}
		}

		parsePhoneNumberCharacter('+', undefined, emit).should.equal('+')
		expect(stopped).to.equal(false)

		parsePhoneNumberCharacter('1', '+', emit).should.equal('1')
		expect(stopped).to.equal(false)

		expect(parsePhoneNumberCharacter('+', '+1', emit)).to.equal(undefined)
		expect(stopped).to.equal(true)

		expect(parsePhoneNumberCharacter('2', '+1', emit)).to.equal('2')
		expect(stopped).to.equal(true)
	})

	it('should work with a new `context` argument in `parsePhoneNumberCharacter()` function (national number)', () => {
		let stopped = false

		const emit = (event) => {
			switch (event) {
				case 'end':
					stopped = true
					break
			}
		}

		parsePhoneNumberCharacter('2', undefined, emit).should.equal('2')
		expect(stopped).to.equal(false)

		expect(parsePhoneNumberCharacter('+', '2', emit)).to.equal(undefined)
		expect(stopped).to.equal(true)

		expect(parsePhoneNumberCharacter('1', '2', emit)).to.equal('1')
		expect(stopped).to.equal(true)
	})
})