diff --git a/tauri-app/src/lib/components/InputWalletConnect.svelte b/tauri-app/src/lib/components/InputWalletConnect.svelte index 3ba51a2ad..d9ea233d2 100644 --- a/tauri-app/src/lib/components/InputWalletConnect.svelte +++ b/tauri-app/src/lib/components/InputWalletConnect.svelte @@ -12,7 +12,7 @@ walletconnectIsDisconnecting, } from '$lib/stores/walletconnect'; - export let priorityChainIds: number[] = []; + export let priorityChainIds: number[] | undefined = undefined;
@@ -28,7 +28,7 @@ size="lg" pill loading={$walletconnectIsDisconnecting || $walletconnectIsConnecting} - on:click={() => walletconnectConnect(priorityChainIds)} + on:click={() => walletconnectConnect(priorityChainIds ?? [])} > {#if $walletconnectAccount} diff --git a/tauri-app/src/lib/components/ModalExecute.svelte b/tauri-app/src/lib/components/ModalExecute.svelte index 79252b0d9..3cbcf212c 100644 --- a/tauri-app/src/lib/components/ModalExecute.svelte +++ b/tauri-app/src/lib/components/ModalExecute.svelte @@ -1,6 +1,7 @@ @@ -97,8 +110,9 @@ {execButtonLabel} {#if $walletconnectAccount && $walletConnectNetwork !== chainId} -
- Please connect your wallet to {overrideNetwork?.name || $activeNetworkRef} network +
+ You are connected to {getNetworkName($walletConnectNetwork)} network. Please connect your wallet + to {overrideNetwork?.name || $activeNetworkRef} network.
{/if}
diff --git a/tauri-app/src/lib/components/ModalExecute.test.ts b/tauri-app/src/lib/components/ModalExecute.test.ts new file mode 100644 index 000000000..a47bdf8d6 --- /dev/null +++ b/tauri-app/src/lib/components/ModalExecute.test.ts @@ -0,0 +1,82 @@ +import { expect, vi, describe, it } from 'vitest'; +import ModalExecute from './ModalExecute.svelte'; +import { render, screen } from '@testing-library/svelte'; +import { settings } from '$lib/stores/settings'; + +vi.mock('$lib/stores/walletconnect', async () => { + const { writable } = await import('svelte/store'); + return { + walletconnectAccount: writable('0x123'), + walletconnectIsDisconnecting: writable(false), + walletconnectIsConnecting: writable(false), + walletconnectProvider: writable(undefined), + walletConnectNetwork: writable(1), + walletConnectConnect: vi.fn(), + walletconnectDisconnect: vi.fn(), + }; +}); + +vi.mock('$lib/stores/settings', async (importOriginal) => { + return { + ...((await importOriginal()) as object), + }; +}); + +describe('ModalExecute', () => { + describe('should show network connection error if wallet is connected to wrong network', () => { + it('should show unknown network name', () => { + render(ModalExecute, { + props: { + open: true, + title: 'Test', + execButtonLabel: 'Execute', + executeLedger: vi.fn(), + executeWalletconnect: vi.fn(), + isSubmitting: false, + overrideNetwork: { + name: 'test', + rpc: 'https://test.com', + 'chain-id': 2, + }, + }, + }); + + const errorElement = screen.getByTestId('network-connection-error'); + expect(errorElement).toHaveTextContent( + 'You are connected to an unknown network. Please connect your wallet to test network.', + ); + }); + + it('should show current connected network name', () => { + settings.set({ + networks: { + mainnet: { + 'chain-id': 1, + rpc: 'https://mainnet.com', + }, + }, + }); + + render(ModalExecute, { + props: { + open: true, + title: 'Test', + execButtonLabel: 'Execute', + executeLedger: vi.fn(), + executeWalletconnect: vi.fn(), + isSubmitting: false, + overrideNetwork: { + name: 'test', + rpc: 'https://test.com', + 'chain-id': 2, + }, + }, + }); + + const errorElement = screen.getByTestId('network-connection-error'); + expect(errorElement).toHaveTextContent( + 'You are connected to mainnet network. Please connect your wallet to test network.', + ); + }); + }); +});