import '@testing-library/jest-dom';
import { useNFTContext } from '@/nft/components/NFTProvider';
import { render } from '@testing-library/react';
import { type Mock, beforeEach, describe, expect, it, vi } from 'vitest';
import { NFTMintDate } from './NFTMintDate';
vi.mock('@/nft/components/NFTProvider');
describe('NFTMintDate', () => {
const mockUseNFTContext = useNFTContext as Mock;
beforeEach(() => {
mockUseNFTContext.mockReturnValue({
contractAddress: '0x123',
tokenId: '1',
mintDate: new Date('2024-01-01T00:00:00Z'),
});
});
it('should render null if formattedDate is null', () => {
mockUseNFTContext.mockReturnValue({
contractAddress: '0x123',
tokenId: '1',
});
const { container } = render();
expect(container.firstChild).toBeNull();
});
it('should render the mint date correctly', () => {
const { getByText } = render();
expect(getByText('Mint date')).toBeInTheDocument();
expect(getByText('Jan 1, 2024')).toBeInTheDocument();
});
it('should render a custom label', () => {
const { getByText } = render();
expect(getByText('Custom Label')).toBeInTheDocument();
expect(getByText('Jan 1, 2024')).toBeInTheDocument();
});
it('should apply a custom className', () => {
const { container } = render();
expect(container.firstChild).toHaveClass('custom-class');
});
});