import { render, screen, fireEvent } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { Checkbox } from '.'; import { HelperText } from '../HelperText'; describe('Checkbox Component', () => { it('renders the default Checkbox', () => { const component = render( Aceitar termos e condições da promoção Você concorda com nossos Termos de Serviço e Política de Privacidade. ); const checkbox = screen.getByRole('checkbox', { name: /aceitar termos e condições da promoção/i }); const helperText = screen.getByText(/você concorda com nossos termos de serviço e política de privacidade/i); expect(checkbox).toBeInTheDocument(); expect(helperText).toBeInTheDocument(); expect(checkbox).not.toBeChecked(); fireEvent.click(checkbox); expect(checkbox).toBeChecked(); expect(component.baseElement).toMatchSnapshot(); }); it('renders the disabled Checkbox', () => { const component = render( Aceitar termos e condições da promoção Você concorda com nossos Termos de Serviço e Política de Privacidade. ); const checkbox = screen.getByRole('checkbox', { name: /aceitar termos e condições da promoção/i }); expect(checkbox).toBeDisabled(); expect(component.baseElement).toMatchSnapshot(); }); it('renders Checkbox with label', () => { render( Aceitar termos e condições da promoção ); const checkbox = screen.getByRole('checkbox', { name: /aceitar termos e condições da promoção/i }); expect(checkbox).toBeInTheDocument(); expect(checkbox).not.toBeChecked(); fireEvent.click(checkbox); expect(checkbox).toBeChecked(); }); it('renders Checkbox with helper text', () => { render( Aceitar termos e condições da promoção Você concorda com nossos Termos de Serviço e Política de Privacidade. ); const helperText = screen.getByText(/você concorda com nossos termos de serviço e política de privacidade/i); expect(helperText).toBeInTheDocument(); }); });