import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Avatar, AvatarImage, AvatarFallback } from './avatar'; import React from 'react'; describe('Avatar', () => { it('renders correctly', () => { render( CN ); // In jsdom, image won't load, so fallback should be visible expect(screen.getByText('CN')).toBeInTheDocument(); }); it('renders fallback when image is not provided', () => { render( JD ); expect(screen.getByText('JD')).toBeInTheDocument(); }); it('renders with different sizes', () => { const { rerender, container } = render( XS ); expect(container.firstChild).toHaveClass('size-6'); rerender( XL ); expect(container.firstChild).toHaveClass('size-16'); }); it('has correct data-slot attributes', () => { const { container } = render( FB ); expect(container.querySelector('[data-slot="avatar"]')).toBeInTheDocument(); expect(container.querySelector('[data-slot="avatar-fallback"]')).toBeInTheDocument(); }); });