import { describe, it, expect } from "vitest";
import { render, screen } from "@testing-library/react";
import { QueueSummary } from "@/components/QueueSummary";
import { makeFocusItem } from "../helpers/fixtures";
describe("QueueSummary", () => {
it("shows empty queue message when no items", () => {
render();
expect(screen.getByText(/queue is empty/i)).toBeInTheDocument();
});
it("shows review count", () => {
const queue = [
makeFocusItem({ id: "a", type: "mr_review" }),
makeFocusItem({ id: "b", type: "mr_review" }),
];
render();
expect(screen.getByText(/2 reviews/)).toBeInTheDocument();
});
it("shows singular for 1 item", () => {
const queue = [makeFocusItem({ id: "a", type: "issue" })];
render();
expect(screen.getByText(/1 issue(?!s)/)).toBeInTheDocument();
});
it("shows mixed counts separated by dots", () => {
const queue = [
makeFocusItem({ id: "a", type: "mr_review" }),
makeFocusItem({ id: "b", type: "issue" }),
makeFocusItem({ id: "c", type: "issue" }),
makeFocusItem({ id: "d", type: "manual" }),
];
render();
const text = screen.getByText(/Queue:/);
expect(text.textContent).toContain("1 review");
expect(text.textContent).toContain("2 issues");
expect(text.textContent).toContain("1 task");
});
});