+
onQueryChange?.(e.target.value)}
+ />
+
Mocked SearchableList
+
+ ),
+}));
+
+vi.mock('hooks/useTokenListWithSearch', () => ({
+ useTokenListWithSearch: vi.fn(() => ({
+ sortedTokens: [],
+ tokenPrices: {},
+ })),
+}));
+
+vi.mock('hooks/useTokenListGrouping', () => ({
+ useTokenListGrouping: vi.fn(() => ({
+ groupedTokens: [],
+ })),
+}));
+
+const mockChainConfig = {
+ key: 'Ethereum',
+ displayName: 'Ethereum',
+ sdkName: 'Ethereum' as const,
+ icon: 'Ethereum' as const,
+ explorerUrl: 'https://etherscan.io',
+ explorerName: 'Etherscan',
+};
+
+const mockWallet = {
+ type: 'Evm' as const,
+ address: '0x123',
+ currentAddress: '0x123',
+ error: '',
+ name: 'Test Wallet',
+};
+
+const defaultProps = {
+ tokenList: [],
+ balances: {},
+ isFetchingBalances: false,
+ isFetching: false,
+ isConnectingWallet: false,
+ selectedChainConfig: mockChainConfig,
+ selectedToken: undefined,
+ sourceToken: undefined,
+ isSameChainSwap: false,
+ isSource: true,
+ wallet: mockWallet,
+ searchQuery: '',
+ onSearchQueryChange: vi.fn(),
+ onSelectToken: vi.fn(),
+ fetchTokensProgress: null,
+};
+
+const AppWrapper = ({ children }: { children: React.ReactNode }) => (
+