@@ -3,7 +3,9 @@ import { checkedToPhoneNumber } from "@/domain/users"
33
44describe ( "phonenumber-check" ,  ( )  =>  { 
55  it ( "Fail just prefix" ,  ( )  =>  { 
6-     const  phone  =  checkedToPhoneNumber ( "+1" ) 
6+     let  phone  =  checkedToPhoneNumber ( "+1" ) 
7+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
8+     phone  =  checkedToPhoneNumber ( "001" ) 
79    expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
810  } ) 
911
@@ -13,18 +15,24 @@ describe("phonenumber-check", () => {
1315  } ) 
1416
1517  it ( "Fail incompleted phone number" ,  ( )  =>  { 
16-     const  phone  =  checkedToPhoneNumber ( "+1650" ) 
18+     let  phone  =  checkedToPhoneNumber ( "+1650" ) 
19+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
20+     phone  =  checkedToPhoneNumber ( "001650" ) 
1721    expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
1822  } ) 
1923
2024  it ( "Fail with non digits" ,  ( )  =>  { 
21-     const  phone  =  checkedToPhoneNumber ( "+1650555abcd" ) 
25+     let  phone  =  checkedToPhoneNumber ( "+1650555abcd" ) 
26+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
27+     phone  =  checkedToPhoneNumber ( "001650555abcd" ) 
2228    expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
2329  } ) 
2430
2531  it ( "Success with valid phone number without + prefix" ,  ( )  =>  { 
2632    let  phone  =  checkedToPhoneNumber ( "16505554321" ) 
2733    expect ( phone ) . toEqual ( "+16505554321" ) 
34+     phone  =  checkedToPhoneNumber ( "0016505554321" ) 
35+     expect ( phone ) . toEqual ( "+16505554321" ) 
2836    phone  =  checkedToPhoneNumber ( "1 650-555-4321" ) 
2937    expect ( phone ) . toEqual ( "+16505554321" ) 
3038    phone  =  checkedToPhoneNumber ( "1 (650) 555-4321" ) 
@@ -40,6 +48,15 @@ describe("phonenumber-check", () => {
4048    expect ( phone ) . toEqual ( "+16505554321" ) 
4149  } ) 
4250
51+   it ( "Success on good phone number with 00 prefix" ,  ( )  =>  { 
52+     let  phone  =  checkedToPhoneNumber ( "0016505554321" ) 
53+     expect ( phone ) . toEqual ( "+16505554321" ) 
54+     phone  =  checkedToPhoneNumber ( "001 650-555-4321" ) 
55+     expect ( phone ) . toEqual ( "+16505554321" ) 
56+     phone  =  checkedToPhoneNumber ( "001 (650) 555-4321" ) 
57+     expect ( phone ) . toEqual ( "+16505554321" ) 
58+   } ) 
59+ 
4360  it ( "Handles null, undefined or empty strings" ,  ( )  =>  { 
4461    const  phone1  =  checkedToPhoneNumber ( "" ) 
4562    expect ( phone1 ) . toBeInstanceOf ( InvalidPhoneNumber ) 
@@ -56,17 +73,47 @@ describe("phonenumber-check", () => {
5673    expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
5774  } ) 
5875
76+   it ( "Fails with double 00 prefix" ,  ( )  =>  { 
77+     const  phone  =  checkedToPhoneNumber ( "000016505554321" ) 
78+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
79+   } ) 
80+ 
5981  it ( "Fails for short phone numbers" ,  ( )  =>  { 
60-     const  phone  =  checkedToPhoneNumber ( "+321313123" ) 
82+     let  phone  =  checkedToPhoneNumber ( "+321313123" ) 
83+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
84+     phone  =  checkedToPhoneNumber ( "00321313123" ) 
6185    expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
6286  } ) 
6387
88+   it ( "Fails with extremely long phone numbers" ,  ( )  =>  { 
89+     const  phone  =  checkedToPhoneNumber ( "+12345678901234567890" ) 
90+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
91+   } ) 
92+ 
93+   it ( "Fails mixed prefixes" ,  ( )  =>  { 
94+     let  phone  =  checkedToPhoneNumber ( "+0016505554321" ) 
95+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
96+     phone  =  checkedToPhoneNumber ( "00+16505554321" ) 
97+     expect ( phone ) . toBeInstanceOf ( InvalidPhoneNumber ) 
98+   } ) 
99+ 
100+   it ( "Handles various international formats" ,  ( )  =>  { 
101+     let  phone  =  checkedToPhoneNumber ( "+447911123456" ) 
102+     expect ( phone ) . toEqual ( "+447911123456" ) 
103+ 
104+     phone  =  checkedToPhoneNumber ( "00491711234567" ) 
105+     expect ( phone ) . toEqual ( "+491711234567" ) 
106+   } ) 
107+ 
64108  it ( "Handles phone numbers with whitespace" ,  ( )  =>  { 
65109    let  phone  =  checkedToPhoneNumber ( " +16505554321 " ) 
66110    expect ( phone ) . toEqual ( "+16505554321" ) 
67111
68112    phone  =  checkedToPhoneNumber ( "  16505554321  " ) 
69113    expect ( phone ) . toEqual ( "+16505554321" ) 
114+ 
115+     phone  =  checkedToPhoneNumber ( "  0016505554321  " ) 
116+     expect ( phone ) . toEqual ( "+16505554321" ) 
70117  } ) 
71118
72119  it ( "Accepts the special exception phone number +1928282918" ,  ( )  =>  { 
0 commit comments