import { describe, it, expect } from 'vitest';
import { render, screen } from '@testing-library/react';
import { Textarea } from '../textarea';
describe('Textarea', () => {
it('renders textarea', () => {
render();
expect(screen.getByTestId('textarea')).toBeInTheDocument();
});
it('applies custom className', () => {
render();
expect(screen.getByTestId('textarea')).toHaveClass('custom-textarea');
});
it('renders as textarea element', () => {
render();
const textarea = screen.getByTestId('textarea');
expect(textarea.tagName).toBe('TEXTAREA');
});
it('accepts placeholder', () => {
render();
expect(screen.getByPlaceholderText('Enter text')).toBeInTheDocument();
});
it('is disabled when disabled prop is true', () => {
render();
expect(screen.getByTestId('textarea')).toBeDisabled();
});
it('forwards ref correctly', () => {
const ref = { current: null };
render();
expect(ref.current).toBeInstanceOf(HTMLTextAreaElement);
});
it('has default styling', () => {
render();
const textarea = screen.getByTestId('textarea');
expect(textarea).toHaveClass('flex', 'min-h-[80px]', 'w-full');
});
it('accepts rows prop', () => {
render();
expect(screen.getByTestId('textarea')).toHaveAttribute('rows', '5');
});
});