import '@testing-library/jest-dom'; import { useIcon } from '@/internal/hooks/useIcon'; import { render, screen } from '@testing-library/react'; import { type Mock, describe, expect, it, vi } from 'vitest'; import { FundCardPaymentMethodImage } from './FundCardPaymentMethodImage'; vi.mock('@/internal/hooks/useIcon', () => ({ useIcon: vi.fn(), })); describe('FundCardPaymentMethodImage', () => { it('renders the icon when iconSvg is available', () => { (useIcon as Mock).mockImplementation(() => ); render( , ); expect( screen.queryByTestId('ockFundCardPaymentMethodImage__iconContainer'), ).toBeInTheDocument(); }); it('applies primary color when the icon is coinbasePay', () => { (useIcon as Mock).mockImplementation(() => ); render( , ); expect( screen.getByTestId('ockFundCardPaymentMethodImage__iconContainer'), ).toBeInTheDocument(); }); it('renders with custom className and size', () => { (useIcon as Mock).mockImplementation(() => ); render( , ); const container = screen.getByTestId( 'ockFundCardPaymentMethodImage__iconContainer', ); expect(container).toHaveClass('custom-class'); }); it('does not apply primary color for non-coinbasePay icons', () => { (useIcon as Mock).mockImplementation(() => ); render( , ); const container = screen.getByTestId( 'ockFundCardPaymentMethodImage__iconContainer', ); expect(container).not.toHaveClass('primary'); }); });