/ tests / utils / phone-normalizer-supplement.test.js
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  });