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();
});
});