import '@testing-library/jest-dom'; import { fireEvent, render, screen } from '@testing-library/react'; import type { Address } from 'viem'; import { describe, expect, it, vi } from 'vitest'; import { TokenSelectButton } from './TokenSelectButton'; describe('TokenSelectButton', () => { const token = { name: 'Ethereum', address: '0x123' as Address, symbol: 'ETH', decimals: 18, image: 'https://wallet-api-production.s3.amazonaws.com/uploads/tokens/eth_288.png', blockchain: 'eth', chainId: 8453, }; it('renders correctly without a token', () => { render( , ); expect(screen.getByText('Select token')).toBeInTheDocument(); expect(screen.queryByTestId('ockTokenSelectButton_Symbol')).toBeNull(); expect(screen.getByTestId('ock-caretDownSvg')).toBeInTheDocument(); }); it('renders correctly with a token when isOpen is true', () => { render( , ); expect(screen.getByText('ETH')).toBeInTheDocument(); expect(screen.getByTestId('ock-caretDownSvg')).toBeInTheDocument(); expect(screen.queryByTestId('ock-caretUpSvg')).toBeNull(); expect(screen.queryByText('Select token')).toBeNull(); }); it('renders correctly with a token when isOpen is false', () => { render(); expect(screen.getByText('ETH')).toBeInTheDocument(); expect(screen.getByTestId('ock-caretUpSvg')).toBeInTheDocument(); expect(screen.queryByTestId('ock-caretDownSvg')).toBeNull(); expect(screen.queryByText('Select token')).toBeNull(); }); it('handles click handler', () => { const onClick = vi.fn(); render( , ); const button = screen.getByTestId('ockTokenSelectButton_Button'); fireEvent.click(button); expect(onClick).toHaveBeenCalled(); }); });