All files validators.ts

100% Statements 40/40
100% Branches 2/2
100% Functions 37/37
100% Lines 39/39

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49        1x 53x 51x 50x 49x 48x 47x 46x 45x 44x 43x 42x 41x 40x 39x 38x 37x 36x     1x 35x 34x 33x 32x 29x 28x 27x 27x 27x 26x 25x 24x 23x 22x 21x 21x 20x     1x 715x 420x    
// Validator functions for test phone numbers
 
import { SupportedCountry } from './mobileNumberGenerators';
 
export const isTestMobileNumber: Record<SupportedCountry, (number: string) => boolean> = {
  Netherlands: (number: string) => /^06 99\d{6}$/.test(number),
  Germany: (number: string) => /^\+49 151 99\d{5}$/.test(number),
  Belgium: (number: string) => /^\+32 470 99\d{4}$/.test(number),
  France: (number: string) => /^\+33 6 99\d{6}$/.test(number),
  UnitedKingdom: (number: string) => /^\+44 7900 99\d{4}$/.test(number),
  Spain: (number: string) => /^\+34 699 99\d{4}$/.test(number),
  Italy: (number: string) => /^\+39 399 99\d{4}$/.test(number),
  Austria: (number: string) => /^\+43 699 99\d{4}$/.test(number),
  Switzerland: (number: string) => /^\+41 79 99\d{6}$/.test(number),
  Sweden: (number: string) => /^\+46 79 99\d{5}$/.test(number),
  Norway: (number: string) => /^\+47 99\d{7,8}$/.test(number),
  Denmark: (number: string) => /^\+45 99\d{7,8}$/.test(number),
  Finland: (number: string) => /^\+358 49 99\d{7}$/.test(number),
  Portugal: (number: string) => /^\+351 99\d{7}$/.test(number),
  Ireland: (number: string) => /^\+353 89 99\d{7}$/.test(number),
  Turkey: (number: string) => /^\+90 555 99\d{6,7}$/.test(number),
  Morocco: (number: string) => /^\+212 699 99\d{4}$/.test(number),
};
 
export const isTestLandlineNumber: Record<SupportedCountry, (number: string) => boolean> = {
  Netherlands: (number: string) => /^010 99\d{6}$/.test(number),
  Germany: (number: string) => /^030 99\d{5}$/.test(number),
  Belgium: (number: string) => /^02 99\d{6}$/.test(number),
  France: (number: string) => /^01 99\d{6}$/.test(number),
  UnitedKingdom: (number: string) => /^020 3999\d{4}$/.test(number),
  Spain: (number: string) => /^91 99\d{5}$/.test(number),
  Italy: (number: string) => /^06 99\d{6}$/.test(number),
  Austria: (number: string) => /^01 99\d{6}$/.test(number),
  Switzerland: (number: string) => /^044 99\d{6}$/.test(number),
  Sweden: (number: string) => /^08 99\d{6}$/.test(number),
  Norway: (number: string) => /^21 99\d{7}$/.test(number),
  Denmark: (number: string) => /^33 99\d{4}$/.test(number),
  Finland: (number: string) => /^09 99\d{6}$/.test(number),
  Portugal: (number: string) => /^21 99\d{6}$/.test(number),
  Ireland: (number: string) => /^01 99\d{6}$/.test(number),
  Turkey: (number: string) => /^212 99\d{6}$/.test(number),
  Morocco: (number: string) => /^0522 99\d{4}$/.test(number),
};
 
export function isTestPhoneNumber(number: string): boolean {
  return Object.values(isTestMobileNumber).some(fn => fn(number)) ||
    Object.values(isTestLandlineNumber).some(fn => fn(number));
}