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');
});
});