@@ -567,6 +567,7 @@ describe('returnPhoneNumberCollector', () => {
567567 type : 'PHONE_NUMBER' ,
568568 required : true ,
569569 validatePhoneNumber : true ,
570+ showExtension : false ,
570571 } ;
571572
572573 const result = returnObjectValueCollector ( mockField , 1 , { } ) ;
@@ -581,6 +582,7 @@ describe('returnPhoneNumberCollector', () => {
581582 value : {
582583 countryCode : '' ,
583584 phoneNumber : '' ,
585+ extension : '' ,
584586 } ,
585587 type : mockField . type ,
586588 validation : [
@@ -600,9 +602,11 @@ describe('returnPhoneNumberCollector', () => {
600602 key : mockField . key ,
601603 label : mockField . label ,
602604 type : mockField . type ,
605+ options : { showExtension : false } ,
603606 value : {
604607 countryCode : '' ,
605608 phoneNumber : '' ,
609+ extension : '' ,
606610 } ,
607611 } ,
608612 } ) ;
@@ -616,6 +620,7 @@ describe('returnPhoneNumberCollector', () => {
616620 type : 'PHONE_NUMBER' ,
617621 required : false ,
618622 validatePhoneNumber : false ,
623+ showExtension : false ,
619624 } ;
620625 const result = returnObjectValueCollector ( mockField , 1 , { } ) ;
621626 expect ( result ) . toEqual ( {
@@ -629,6 +634,7 @@ describe('returnPhoneNumberCollector', () => {
629634 value : {
630635 countryCode : mockField . defaultCountryCode ,
631636 phoneNumber : '' ,
637+ extension : '' ,
632638 } ,
633639 type : mockField . type ,
634640 validation : null ,
@@ -637,9 +643,11 @@ describe('returnPhoneNumberCollector', () => {
637643 key : mockField . key ,
638644 label : mockField . label ,
639645 type : mockField . type ,
646+ options : { showExtension : false } ,
640647 value : {
641648 countryCode : mockField . defaultCountryCode ,
642649 phoneNumber : '' ,
650+ extension : '' ,
643651 } ,
644652 } ,
645653 } ) ;
@@ -653,6 +661,7 @@ describe('returnPhoneNumberCollector', () => {
653661 type : 'PHONE_NUMBER' ,
654662 required : false ,
655663 validatePhoneNumber : false ,
664+ showExtension : false ,
656665 } ;
657666 const prefillMock : PhoneNumberOutputValue = {
658667 countryCode : 'CA' ,
@@ -669,6 +678,7 @@ describe('returnPhoneNumberCollector', () => {
669678 value : {
670679 countryCode : prefillMock . countryCode ,
671680 phoneNumber : '' ,
681+ extension : '' ,
672682 } ,
673683 type : mockField . type ,
674684 validation : null ,
@@ -677,9 +687,11 @@ describe('returnPhoneNumberCollector', () => {
677687 key : mockField . key ,
678688 label : mockField . label ,
679689 type : mockField . type ,
690+ options : { showExtension : false } ,
680691 value : {
681692 countryCode : prefillMock . countryCode ,
682693 phoneNumber : '' ,
694+ extension : '' ,
683695 } ,
684696 } ,
685697 } ) ;
@@ -695,6 +707,7 @@ describe('returnPhoneNumberCollector', () => {
695707 type : 'PHONE_NUMBER' ,
696708 required : false ,
697709 validatePhoneNumber : false ,
710+ showExtension : false ,
698711 } ;
699712 const prefillMock : PhoneNumberOutputValue = {
700713 phoneNumber : '1234567890' ,
@@ -711,6 +724,7 @@ describe('returnPhoneNumberCollector', () => {
711724 value : {
712725 countryCode : '' ,
713726 phoneNumber : prefillMock . phoneNumber ,
727+ extension : '' ,
714728 } ,
715729 type : mockField . type ,
716730 validation : null ,
@@ -719,9 +733,11 @@ describe('returnPhoneNumberCollector', () => {
719733 key : mockField . key ,
720734 label : mockField . label ,
721735 type : mockField . type ,
736+ options : { showExtension : false } ,
722737 value : {
723738 countryCode : '' ,
724739 phoneNumber : prefillMock . phoneNumber ,
740+ extension : '' ,
725741 } ,
726742 } ,
727743 } ) ;
@@ -735,6 +751,7 @@ describe('returnPhoneNumberCollector', () => {
735751 type : 'PHONE_NUMBER' ,
736752 required : false ,
737753 validatePhoneNumber : false ,
754+ showExtension : false ,
738755 } ;
739756 const prefillMock : PhoneNumberOutputValue = {
740757 countryCode : 'CA' ,
@@ -752,6 +769,7 @@ describe('returnPhoneNumberCollector', () => {
752769 value : {
753770 countryCode : prefillMock . countryCode ,
754771 phoneNumber : prefillMock . phoneNumber ,
772+ extension : '' ,
755773 } ,
756774 type : mockField . type ,
757775 validation : null ,
@@ -760,13 +778,48 @@ describe('returnPhoneNumberCollector', () => {
760778 key : mockField . key ,
761779 label : mockField . label ,
762780 type : mockField . type ,
781+ options : { showExtension : false } ,
763782 value : {
764783 countryCode : prefillMock . countryCode ,
765784 phoneNumber : prefillMock . phoneNumber ,
785+ extension : '' ,
766786 } ,
767787 } ,
768788 } ) ;
769789 } ) ;
790+
791+ it ( 'showExtension is reflected in output options' , ( ) => {
792+ const mockField : PhoneNumberField = {
793+ key : 'phone-number-key' ,
794+ defaultCountryCode : null ,
795+ label : 'Phone Number' ,
796+ type : 'PHONE_NUMBER' ,
797+ required : false ,
798+ validatePhoneNumber : false ,
799+ showExtension : true ,
800+ } ;
801+ const result = returnObjectValueCollector ( mockField , 1 , { } ) ;
802+ expect ( result . output . options ) . toEqual ( { showExtension : true } ) ;
803+ } ) ;
804+
805+ it ( 'prefilled extension is set on collector' , ( ) => {
806+ const mockField : PhoneNumberField = {
807+ key : 'phone-number-key' ,
808+ defaultCountryCode : null ,
809+ label : 'Phone Number' ,
810+ type : 'PHONE_NUMBER' ,
811+ required : false ,
812+ validatePhoneNumber : false ,
813+ showExtension : true ,
814+ } ;
815+ const prefillMock : PhoneNumberOutputValue = {
816+ phoneNumber : '1234567890' ,
817+ extension : '123' ,
818+ } ;
819+ const result = returnObjectValueCollector ( mockField , 1 , prefillMock ) ;
820+ expect ( result . input . value . extension ) . toBe ( '123' ) ;
821+ expect ( result . output . value ?. extension ) . toBe ( '123' ) ;
822+ } ) ;
770823} ) ;
771824
772825describe ( 'No Value Collectors' , ( ) => {
0 commit comments