import { describe, it, expect, beforeEach, vi } from "vitest";
import { render, screen, waitFor } from "@testing-library/react";
import { Command, CommandList } from "../../../../shadcnui";
import { configureJsonApi } from "../../../../client/config";
import { HelpProvider } from "../../contexts/HelpContext";
import { HelpSearchResultRow } from "../HelpSearchResultRow";
import { HowToService } from "../../../how-to/data/HowToService";
vi.mock("../../../how-to/data/HowToService", () => ({
HowToService: { findOne: vi.fn() },
}));
const article = {
id: "abc",
slug: "x",
howToType: "how-to",
name: "X title",
summary: "S",
} as any;
beforeEach(() => {
vi.clearAllMocks();
configureJsonApi({
apiUrl: "http://localhost",
helpContent: { brand: { label: "narr8" } },
});
});
describe("HelpSearchResultRow", () => {
it("renders the article title when the service returns the how-to", async () => {
vi.mocked(HowToService.findOne).mockResolvedValue(article);
render(
,
);
expect(await screen.findByText("X title")).toBeTruthy();
});
it("renders disabled removed-state row when the service has no how-to", async () => {
vi.mocked(HowToService.findOne).mockRejectedValue(new Error("not found"));
render(
,
);
await waitFor(() => expect(HowToService.findOne).toHaveBeenCalledWith({ id: "ghost" }));
expect(screen.queryByText("X title")).toBeNull();
});
});