phone-normalizer-supplement.test.js
1 /** 2 * Phone Normalizer Supplement — Cover isFakeNumber (lines 181-195) 3 * 4 * The isFakeNumber function was entirely untested. 5 */ 6 7 import { test, describe } from 'node:test'; 8 import assert from 'node:assert/strict'; 9 import { isFakeNumber } from '../../src/utils/phone-normalizer.js'; 10 11 describe('isFakeNumber', () => { 12 test('returns false for null/undefined (line 181)', () => { 13 assert.equal(isFakeNumber(null), false); 14 assert.equal(isFakeNumber(undefined), false); 15 assert.equal(isFakeNumber(''), false); 16 }); 17 18 test('returns true for US 555-01xx fictional number (line 185)', () => { 19 assert.equal(isFakeNumber('+15550123456'), true); 20 assert.equal(isFakeNumber('+15550187654'), true); 21 }); 22 23 test('returns true for +1-555-xxx-xxxx entire 555 area code (line 186)', () => { 24 assert.equal(isFakeNumber('+16135550100'), true); 25 }); 26 27 test('returns true for all-same-digit number (line 189)', () => { 28 // +11111111 → digits=11111111 (all 1s) → matches ^(\d)\1{6,}$ 29 assert.equal(isFakeNumber('+11111111'), true); 30 // +9999999999 → digits=9999999999 (all 9s, no country code prefix breaks pattern) 31 assert.equal(isFakeNumber('+9999999999'), true); 32 // +19999999999 → digits=19999999999 (1 then 9s → NOT all same digit → false) 33 assert.equal(isFakeNumber('+19999999999'), false); 34 }); 35 36 test('returns true for sequential placeholder (line 192)', () => { 37 assert.equal(isFakeNumber('+11234567890'), true); 38 assert.equal(isFakeNumber('+10987654321'), true); 39 }); 40 41 test('returns false for real phone numbers (line 194)', () => { 42 assert.equal(isFakeNumber('+61412345678'), false); 43 assert.equal(isFakeNumber('+12125551234'), false); 44 assert.equal(isFakeNumber('+447821234567'), false); 45 }); 46 });