import '@testing-library/jest-dom'; import { useIsMounted } from '@/internal/hooks/useIsMounted'; import { render } from '@testing-library/react'; import { type Mock, afterEach, beforeEach, describe, expect, it, vi, } from 'vitest'; import { NFTMintCard } from './NFTMintCard'; vi.mock('@/internal/hooks/useIsMounted'); vi.mock('@/nft/components/NFTProvider', () => ({ NFTProvider: vi.fn(({ children }) =>
{children}
), })); vi.mock('@/nft/components/mint', () => ({ NFTCreator: vi.fn(() =>
), NFTCollectionTitle: vi.fn(() =>
), NFTQuantitySelector: vi.fn(() =>
), NFTAssetCost: vi.fn(() =>
), NFTMintButton: vi.fn(() =>
), })); vi.mock('@/nft/components/view', () => ({ NFTMedia: vi.fn(() =>
), })); describe('NFTMintCard', () => { beforeEach(() => { (useIsMounted as Mock).mockReturnValue(true); }); afterEach(() => { vi.clearAllMocks(); }); it('should render correctly when mounted', () => { const { getByTestId, getByText } = render(
Child Component
, ); expect(getByTestId('ockNFTMintCard_Container')).toBeInTheDocument(); expect(getByText('Child Component')).toBeInTheDocument(); expect(getByTestId('ockNFTMintCard_Container')).toHaveClass('test-class'); }); it('should not render when not mounted', () => { (useIsMounted as Mock).mockReturnValue(false); const { queryByTestId } = render(
Child Component
, ); expect(queryByTestId('ockNFTMintCard_Container')).not.toBeInTheDocument(); }); it('should render default content when no children are provided', () => { const { getByTestId } = render( , ); expect(getByTestId('nft-media')).toBeInTheDocument(); expect(getByTestId('nft-creator')).toBeInTheDocument(); expect(getByTestId('nft-collection-title')).toBeInTheDocument(); expect(getByTestId('nft-quantity-selector')).toBeInTheDocument(); expect(getByTestId('nft-asset-cost')).toBeInTheDocument(); expect(getByTestId('nft-mint-button')).toBeInTheDocument(); }); });