import { render, screen } from '@testing-library/react'; import { describe, it, expect } from 'vitest'; import { FormField } from './FormField'; import { Input } from './input'; describe('FormField Component', () => { it('renders label', () => { render( , ); expect(screen.getByText('Username')).toBeInTheDocument(); }); it('renders required indicator', () => { render( , ); expect(screen.getByText('*')).toBeInTheDocument(); }); it('renders error message', () => { render( , ); expect(screen.getByText('Invalid email')).toBeInTheDocument(); }); it('renders help text when no error', () => { render( , ); expect(screen.getByText('Enter your email address')).toBeInTheDocument(); }); it('does not render help text when error is present', () => { render( , ); expect(screen.queryByText('Help text')).not.toBeInTheDocument(); expect(screen.getByText('Invalid email')).toBeInTheDocument(); }); it('renders children', () => { render( , ); expect(screen.getByTestId('test-input')).toBeInTheDocument(); }); it('applies custom className', () => { const { container } = render( , ); expect(container.firstChild).toHaveClass('custom-class'); }); });