import { mockMatchMedia, render, screen } from '../../test-utils'; import { ListItem, type ListItemProps } from '../ListItem'; mockMatchMedia(); const avatars = [ { imgSrc: 'avatar1.jpg', profileName: 'User 1' }, { imgSrc: 'avatar2.jpg', profileName: 'User 2' }, ]; const renderWithMedia = (media: ListItemProps['media']) => render(); describe('ListItem.AvatarLayout', () => { it('applies custom className alongside default class', () => { renderWithMedia( , ); expect(screen.getByRole('group', { name: 'Custom avatar group' })).toHaveClass('custom-class'); }); it('renders both avatars', () => { renderWithMedia(); const images = screen.getAllByRole('presentation'); expect(images).toHaveLength(avatars.length); expect(images[0]).toHaveAttribute('src', avatars[0].imgSrc); expect(images[1]).toHaveAttribute('src', avatars[1].imgSrc); }); it('renders with single avatar', () => { renderWithMedia(); expect(screen.getByRole('presentation')).toHaveAttribute('src', avatars[0].imgSrc); }); it('handles empty avatars array', () => { renderWithMedia(); expect(screen.queryByRole('img')).not.toBeInTheDocument(); }); it('supports accessibility props', () => { renderWithMedia(); expect(screen.getByLabelText('User avatars')).toBeInTheDocument(); }); it('passes through role', () => { renderWithMedia( , ); expect(screen.getByRole('group', { name: 'Avatar group' })).toBeInTheDocument(); }); });