import React from 'react'; import { render, screen } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; import { SwitchField } from './'; describe('SwitchField component', () => { it('allows user to check and uncheck', async () => { const ControlledSwitch = () => { const [isChecked, setChecked] = React.useState(false); return ( setChecked(event.target.checked)} /> ); }; render(); expect(screen.getByRole('switch', { name: 'my switch' })).toBeVisible(); expect(screen.getByRole('switch')).not.toBeChecked(); await userEvent.click(screen.getByRole('switch')); expect(screen.getByRole('switch')).toBeChecked(); await userEvent.click(screen.getByRole('switch')); expect(screen.getByRole('switch')).not.toBeChecked(); }); it('disables the switch when props isDisabled is true', () => { render( , ); expect(screen.getByRole('switch', { name: 'my switch' })).toBeDisabled(); }); it('displays an helptText when provided', () => { render( , ); expect(screen.getByText("I'm here to help!")).toBeVisible(); }); });