import { describe, expect, it } from "vitest";
import { render, screen } from "@testing-library/react";
import ItemDoctor from "@/app/component/ItemDoctor";
import Loading from "@/app/doctors/loading";
const DOCTOR = {
id: 1,
uuid: "84b7ea9e-2fe1-4413-906d-7a5bf05e6f8f",
name: "محمدباقر جهانتاب",
specialties: [{ id: "13", name: "جراحی عمومی", parent_id: null }],
active: 1,
free_turn: "شنبه ۱۷:۴۵",
};
const noop = () => {};
describe("ItemDoctor — لینک پروفایل", () => {
it("پزشک با uuid لینک میگیرد", () => {
render();
const links = screen.getAllByRole("link");
expect(links.length).toBeGreaterThan(0);
for (const link of links) {
expect(link).toHaveAttribute("href", `/doctor/${DOCTOR.uuid}`);
}
});
it("کارت بدون uuid هیچ لینکی ندارد", () => {
render();
expect(screen.queryByRole("link")).not.toBeInTheDocument();
});
it("رشتهٔ undefined هرگز در HTML نمینشیند", () => {
// ریشهٔ خطای Not found (404) در Search Console: href="/doctor/undefined".
const { container } = render(
);
expect(container.innerHTML).not.toContain("undefined");
});
it("نام پزشک حتی بدون لینک نمایش داده میشود", () => {
render();
expect(screen.getByText("بدون شناسه")).toBeInTheDocument();
});
it("display_name بر name مقدم است", () => {
render(
);
expect(screen.getByText("دکتر جهانتاب")).toBeInTheDocument();
});
});
describe("اسکلت بارگذاری /doctors", () => {
it("هیچ لینک doctor/undefined تولید نمیکند", () => {
const { container } = render();
expect(container.innerHTML).not.toContain("/doctor/undefined");
expect(screen.queryByRole("link")).not.toBeInTheDocument();
});
it("همچنان شش کارت اسکلت میسازد", () => {
const { container } = render();
expect(container.querySelectorAll("li")).toHaveLength(6);
});
});