File tree Expand file tree Collapse file tree
src/models/requests/messages
test/models/requests/messages Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -9,18 +9,14 @@ export const phoneNumberSchema = Schema.String.pipe(
99 decode : removeHyphens ,
1010 encode : s => s ,
1111 } ) ,
12+ // 하이픈 제거 이후 값이 비어있지 않은지 확인 (예: "---" -> "")
1213 Schema . filter ( s => s . trim ( ) . length > 0 , {
13- message : ( ) => '수신 번호는 빈 문자열일 수 없습니다.' ,
14+ message : ( ) => '전화번호는 빈 문자열일 수 없습니다.' ,
1415 } ) ,
15- ) ;
16-
17- export const fromPhoneNumberSchema = Schema . String . pipe (
18- Schema . transform ( Schema . String , {
19- decode : removeHyphens ,
20- encode : s => s ,
21- } ) ,
22- Schema . filter ( s => s . trim ( ) . length > 0 , {
23- message : ( ) => '발신 번호는 빈 문자열일 수 없습니다.' ,
16+ // 숫자 및 하이픈만 허용하도록 강제. 하이픈 제거 후에는 숫자만 남아야 함
17+ Schema . filter ( s => / ^ [ 0 - 9 ] + $ / . test ( s ) , {
18+ message : ( ) =>
19+ '전화번호는 숫자 및 특수문자 - 외 문자를 포함할 수 없습니다.' ,
2420 } ) ,
2521) ;
2622
@@ -49,7 +45,7 @@ export const requestSendOneMessageSchema = messageSchema.pipe(
4945 Schema . extend (
5046 Schema . Struct ( {
5147 to : Schema . Union ( phoneNumberSchema , Schema . Array ( phoneNumberSchema ) ) ,
52- from : Schema . optional ( fromPhoneNumberSchema ) ,
48+ from : Schema . optional ( phoneNumberSchema ) ,
5349 } ) ,
5450 ) ,
5551) ;
Original file line number Diff line number Diff line change @@ -46,6 +46,22 @@ describe('phoneNumberSchema', () => {
4646
4747 expect ( result ) . toBe ( '01012345678' ) ;
4848 } ) ;
49+
50+ it ( 'should fail when phone number contains letters' , ( ) => {
51+ expect ( ( ) => {
52+ Schema . decodeUnknownSync ( phoneNumberSchema ) ( '010-ABCD-5678' ) ;
53+ } ) . toThrow ( ) ;
54+ } ) ;
55+
56+ it ( 'should fail when phone number contains plus sign or spaces' , ( ) => {
57+ expect ( ( ) => {
58+ Schema . decodeUnknownSync ( phoneNumberSchema ) ( '+82-10-1234-5678' ) ;
59+ } ) . toThrow ( ) ;
60+
61+ expect ( ( ) => {
62+ Schema . decodeUnknownSync ( phoneNumberSchema ) ( '010 1234 5678' ) ;
63+ } ) . toThrow ( ) ;
64+ } ) ;
4965} ) ;
5066
5167describe ( 'requestSendOneMessageSchema' , ( ) => {
You can’t perform that action at this time.
0 commit comments