Files
fusion/packages/dashboard/app/components/__tests__/LlamaCppProviderCard.test.tsx
Fusion 483916472f feat(FN-3431): align llama.cpp compact layout and merge recovery coverage
- Adjust llama.cpp provider card markup and CSS to keep compact spacing aligned with list view and workflow styling updates
- Add regression tests for compact llama.cpp card layout behavior in dashboard component tests
- Expand merge error recovery tests in the engine to validate deduped auto-merge retry handling and related project-engine flow changes
- Update architecture/task management docs and include changeset metadata for auto-merge recovery dedup work

Fusion-Task-Id: FN-3431
2026-05-05 01:46:58 -07:00

43 lines
1.7 KiB
TypeScript

import { fireEvent, render, screen, waitFor } from "@testing-library/react";
import { beforeEach, describe, expect, it, vi } from "vitest";
import { LlamaCppProviderCard } from "../LlamaCppProviderCard";
const fetchLlamaCppStatus = vi.fn();
const setLlamaCppEnabled = vi.fn();
vi.mock("../../api", () => ({
fetchLlamaCppStatus: (...args: unknown[]) => fetchLlamaCppStatus(...args),
setLlamaCppEnabled: (...args: unknown[]) => setLlamaCppEnabled(...args),
}));
describe("LlamaCppProviderCard", () => {
beforeEach(() => {
fetchLlamaCppStatus.mockResolvedValue({
enabled: false,
ready: false,
extension: { status: "ok" },
server: { available: true, url: "http://127.0.0.1:8080", hasApiKey: false },
});
setLlamaCppEnabled.mockResolvedValue({ enabled: true, restartRequired: false });
});
it("renders and enables provider", async () => {
render(<LlamaCppProviderCard authenticated={false} />);
await waitFor(() => expect(fetchLlamaCppStatus).toHaveBeenCalled());
fireEvent.click(screen.getByRole("button", { name: "Enable" }));
await waitFor(() => expect(setLlamaCppEnabled).toHaveBeenCalledWith(true));
});
it("uses shared auth card layout in compact settings mode", async () => {
render(<LlamaCppProviderCard authenticated={false} compact />);
const card = await screen.findByTestId("llama-cpp-provider-card");
expect(card.className).toContain("auth-provider-card");
expect(card.querySelector(".auth-provider-header")).toBeTruthy();
expect(card.querySelector(".auth-provider-info")).toBeTruthy();
expect(card.querySelector(".auth-provider-cli-actions")).toBeTruthy();
expect(card.querySelector(".auth-hint.llama-cpp-status")).toBeTruthy();
});
});