@@ -2,7 +2,7 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
2
2
import type { MockInstance } from 'vitest'
3
3
4
4
import { ConstantsUtil } from '@reown/appkit-common'
5
- import type { ChainNamespace } from '@reown/appkit-common'
5
+ import type { CaipNetwork , ChainNamespace } from '@reown/appkit-common'
6
6
import {
7
7
AlertController ,
8
8
ApiController ,
@@ -444,4 +444,43 @@ describe('AppKitBaseClient.open', () => {
444
444
445
445
expect ( result ) . toEqual ( { hash : '0xabc123def456' } )
446
446
} )
447
+
448
+ it ( 'it should throw an error if failed to switch network' , async ( ) => {
449
+ const mockArgs = {
450
+ assetAddress : '0x833589fcd6edb6e08f4c7c32d4f71b54bda02913' ,
451
+ amount : '1.0' ,
452
+ namespace : 'eip155' as ChainNamespace ,
453
+ chainId : '1' ,
454
+ to : '0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6'
455
+ }
456
+ vi . spyOn ( ChainController , 'state' , 'get' ) . mockReturnValue ( {
457
+ ...ChainController . state ,
458
+ activeChain : 'eip155' ,
459
+ activeCaipAddress : 'eip155:137:0x1234567890123456789012345678901234567890' ,
460
+ chains : new Map ( [
461
+ [
462
+ 'eip155' ,
463
+ {
464
+ accountState : {
465
+ caipAddress : 'eip155:137:0x1234567890123456789012345678901234567890'
466
+ }
467
+ }
468
+ ]
469
+ ] ) as unknown as Map < ChainNamespace , ChainAdapter >
470
+ } )
471
+
472
+ vi . spyOn ( baseClient as any , 'getCaipNetwork' ) . mockReturnValue ( { id : 137 } as CaipNetwork )
473
+ vi . spyOn ( ChainController , 'getCaipNetworkById' ) . mockReturnValue ( {
474
+ id : 1 ,
475
+ chainNamespace : 'eip155'
476
+ } as CaipNetwork )
477
+
478
+ vi . spyOn ( ChainController , 'switchActiveNetwork' ) . mockRejectedValue (
479
+ new Error ( 'Failed to switch' )
480
+ )
481
+
482
+ await expect ( baseClient . open ( { view : 'WalletSend' , arguments : mockArgs } ) ) . rejects . toThrow (
483
+ 'Failed to switch'
484
+ )
485
+ } )
447
486
} )
0 commit comments