import { render, screen, fireEvent } from '@testing-library/react'; import { describe, it, expect, vi } from 'vitest'; import { Input } from '../input'; describe('Input', () => { it('renders with placeholder', () => { render(); expect(screen.getByPlaceholderText('Enter text')).toBeInTheDocument(); }); it('handles value changes', () => { const onChange = vi.fn(); render(); fireEvent.change(screen.getByRole('textbox'), { target: { value: 'hello' } }); expect(onChange).toHaveBeenCalledOnce(); }); it('applies disabled state', () => { render(); expect(screen.getByPlaceholderText('Disabled')).toBeDisabled(); }); it('passes type prop', () => { render(); const input = screen.getByPlaceholderText('Password'); expect(input).toHaveAttribute('type', 'password'); }); });