@@ -2,7 +2,7 @@ import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
22import type { MockInstance } from 'vitest'
33
44import { ConstantsUtil } from '@reown/appkit-common'
5- import type { ChainNamespace } from '@reown/appkit-common'
5+ import type { CaipNetwork , ChainNamespace } from '@reown/appkit-common'
66import {
77 AlertController ,
88 ApiController ,
@@ -444,4 +444,43 @@ describe('AppKitBaseClient.open', () => {
444444
445445 expect ( result ) . toEqual ( { hash : '0xabc123def456' } )
446446 } )
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+ } )
447486} )
0 commit comments