@@ -10,7 +10,12 @@ const getWalletData = (): CAIP294WalletData => ({
1010 name : 'Example Wallet' ,
1111 icon : 'data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"/>' ,
1212 rdns : 'com.example.wallet' ,
13- extensionId : 'abcdefghijklmnopqrstuvwxyz' ,
13+ targets : [
14+ {
15+ type : 'caip-123' ,
16+ value : 'abcdefghijklmnopqrstuvwxyz' ,
17+ } ,
18+ ] ,
1419} ) ;
1520
1621const walletDataValidationError = ( ) =>
@@ -88,26 +93,56 @@ describe('CAIP-294', () => {
8893 } ) ;
8994 } ) ;
9095
91- it ( 'allows `extensionId ` to be undefined or a string ' , ( ) => {
96+ it ( 'allows `targets ` to be undefined' , ( ) => {
9297 const walletInfo = getWalletData ( ) ;
9398 expect ( ( ) => announceWallet ( walletInfo ) ) . not . toThrow ( ) ;
9499
95- delete walletInfo . extensionId ;
100+ delete walletInfo . targets ;
101+ expect ( ( ) => announceWallet ( walletInfo ) ) . not . toThrow ( ) ;
102+ } ) ;
96103
104+ it ( 'allows `targets` to be empty array' , ( ) => {
105+ const walletInfo = getWalletData ( ) ;
97106 expect ( ( ) => announceWallet ( walletInfo ) ) . not . toThrow ( ) ;
98107
99- walletInfo . extensionId = 'valid-string' ;
108+ walletInfo . targets = [ ] ;
100109 expect ( ( ) => announceWallet ( walletInfo ) ) . not . toThrow ( ) ;
101110 } ) ;
102- } ) ;
103111
104- it ( 'throws if the `extensionId` field is invalid' , ( ) => {
105- [ null , '' , 42 , Symbol ( 'bar' ) ] . forEach ( ( invalidExtensionId ) => {
106- const walletInfo = getWalletData ( ) ;
107- walletInfo . extensionId = invalidExtensionId as any ;
112+ it ( 'throws if the `targets` field is invalid' , ( ) => {
113+ [ null , '' , 42 , Symbol ( 'bar' ) , { } ] . forEach ( ( invalidTargets ) => {
114+ const walletInfo = getWalletData ( ) ;
115+ walletInfo . targets = invalidTargets as any ;
116+
117+ expect ( ( ) => announceWallet ( walletInfo ) ) . toThrow (
118+ walletDataValidationError ( ) ,
119+ ) ;
120+ } ) ;
121+ } ) ;
122+
123+ it ( 'throws if the `targets` field contains invalid targets' , ( ) => {
124+ [ undefined , null , '' , 42 , Symbol ( 'bar' ) , [ ] , { } ] . forEach (
125+ ( invalidTarget ) => {
126+ const walletInfo = getWalletData ( ) ;
127+ walletInfo . targets = [ invalidTarget as any ] ;
128+
129+ expect ( ( ) => announceWallet ( walletInfo ) ) . toThrow (
130+ walletDataValidationError ( ) ,
131+ ) ;
132+ } ,
133+ ) ;
134+ } ) ;
135+
136+ it ( 'throws if the `targets` field contains invalid target types' , ( ) => {
137+ [ undefined , null , '' , 42 , Symbol ( 'bar' ) , [ ] , { } ] . forEach (
138+ ( invalidTargetType ) => {
139+ const walletInfo = getWalletData ( ) ;
140+ walletInfo . targets = [ { type : invalidTargetType as any } ] ;
108141
109- expect ( ( ) => announceWallet ( walletInfo ) ) . toThrow (
110- walletDataValidationError ( ) ,
142+ expect ( ( ) => announceWallet ( walletInfo ) ) . toThrow (
143+ walletDataValidationError ( ) ,
144+ ) ;
145+ } ,
111146 ) ;
112147 } ) ;
113148 } ) ;
0 commit comments