import { cleanup, fireEvent, render, screen } from "@testing-library/react";
import React from "react";
import { afterEach, describe, expect, it, vi } from "vitest";
import { Textarea } from "./textarea";
afterEach(cleanup);
describe("Textarea Component", () => {
    it("should render correctly", () => {
        render(<Textarea name="bio" placeholder="Bio"/>);
        const textarea = screen.getByPlaceholderText("Bio");
        expect(textarea).toBeTruthy();
        expect(textarea.name).toBe("bio");
    });
    it("should handle changes", () => {
        const handleChange = vi.fn();
        render(<Textarea name="bio" onChange={handleChange}/>);
        const textarea = screen.getByRole("textbox");
        fireEvent.change(textarea, { target: { value: "Hello world" } });
        expect(handleChange).toHaveBeenCalledTimes(1);
        expect(textarea.value).toBe("Hello world");
    });
    it("should respect minRows prop", () => {
        render(<Textarea name="bio" minRows={5}/>);
        const textarea = screen.getByRole("textbox");
        expect(textarea.rows).toBe(5);
    });
});
