import { render, screen } from "@testing-library/react";
import { describe, expect, it } from "vitest";
import AlertComponent from "./alert.component";

describe("AlertComponent", () => {
  it("renders with default props", () => {
    render(<AlertComponent title="Default Alert" />);
    expect(screen.getByText("Default Alert")).toBeInTheDocument();
    expect(screen.getByRole("alert")).toHaveClass("ant-alert");
  });

  it("applies type prop correctly", () => {
    render(<AlertComponent title="Success Alert" type="success" />);
    const alert = screen.getByRole("alert");
    expect(screen.getByText("Success Alert")).toBeInTheDocument();
    expect(alert).toHaveClass("ant-alert-success");
  });

  it("displays description when provided", () => {
    render(<AlertComponent title="Error Alert" description="Something went wrong" type="error" />);
    expect(screen.getByText("Error Alert")).toBeInTheDocument();
    expect(screen.getByText("Something went wrong")).toBeInTheDocument();
    expect(screen.getByRole("alert")).toHaveClass("ant-alert-error");
  });

  it("is closable and shows icon when props are set", () => {
    render(<AlertComponent title="Warning Alert" type="warning" showIcon closable />);
    expect(screen.getByText("Warning Alert")).toBeInTheDocument();
    expect(screen.getByRole("button", { name: /close/i })).toBeInTheDocument(); // Close button
  });
});
