import { render, screen } from '../../test-utils'; import userEvent from '@testing-library/user-event'; import { ListItem, type ListItemProps } from '../ListItem'; describe('ListItem.Switch', () => { const renderWith = (overrides: Partial = {}) => render(); it('renders switch with correct role', () => { renderWith({ control: {}} /> }); expect(screen.getByRole('switch')).toBeInTheDocument(); }); describe('checked state', () => { it('reflects checked state', () => { renderWith({ control: {}} /> }); expect(screen.getByRole('switch')).toBeChecked(); }); it('reflects unchecked state', () => { renderWith({ control: {}} /> }); expect(screen.getByRole('switch')).not.toBeChecked(); }); }); it('handles onClick events', async () => { const handleClick = jest.fn(); renderWith({ control: }); await userEvent.click(screen.getByRole('switch')); expect(handleClick).toHaveBeenCalledTimes(1); }); it('is disabled when ListItem is disabled', async () => { const handleClick = jest.fn(); renderWith({ disabled: true, control: , }); const switchElement = screen.getByRole('switch'); expect(switchElement).toBeDisabled(); await userEvent.click(screen.getByRole('switch')); expect(handleClick).not.toHaveBeenCalled(); }); });