32 lines
1.4 KiB
JavaScript
32 lines
1.4 KiB
JavaScript
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 message="Default Alert" />);
|
|
expect(screen.getByText("Default Alert")).toBeInTheDocument();
|
|
expect(screen.getByRole("alert")).toHaveClass("ant-alert");
|
|
});
|
|
|
|
it("applies type prop correctly", () => {
|
|
render(<AlertComponent message="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 message="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 message="Warning Alert" type="warning" showIcon closable />);
|
|
expect(screen.getByText("Warning Alert")).toBeInTheDocument();
|
|
expect(screen.getByRole("button", { name: /close/i })).toBeInTheDocument(); // Close button
|
|
});
|
|
});
|