import '@testing-library/jest-dom'; import { render } from '@testing-library/react'; import { type Mock, describe, expect, it, vi } from 'vitest'; import { useChainId } from 'wagmi'; import { NFTNetwork } from './NFTNetwork'; vi.mock('wagmi', () => ({ useChainId: vi.fn(), })); describe('NFTNetwork', () => { it('should render null if chain is not available', () => { (useChainId as Mock).mockReturnValue(undefined); const { container } = render(); expect(container.firstChild).toBeNull(); }); it('should render null if chain Id is not in networkMap', () => { (useChainId as Mock).mockReturnValue(1); const { container } = render(); expect(container.firstChild).toBeNull(); }); it('should render correctly with valid chain name', () => { (useChainId as Mock).mockReturnValue(8453); const { getByText, getByRole } = render(); expect(getByText('Network')).toBeInTheDocument(); expect(getByText('Base')).toBeInTheDocument(); expect(getByRole('img')).toBeInTheDocument(); // assuming baseSvg includes role image }); it('should apply custom className', () => { (useChainId as Mock).mockReturnValue(8453); const { container } = render(); expect(container.firstChild).toHaveClass('custom-class'); }); it('should render with custom label', () => { (useChainId as Mock).mockReturnValue(8453); const { getByText } = render(); expect(getByText('Custom Label')).toBeInTheDocument(); }); });