import { render, screen } from "@testing-library/react";
import { describe, it, expect, vi } from "vitest";
import { WidgetRenderer } from "./WidgetRenderer";
import type { WidgetPlacement } from "@mosaic/shared";
vi.mock("@/components/widgets", () => ({
TasksWidget: ({ id }: { id: string }): React.JSX.Element =>
Tasks Widget {id}
,
CalendarWidget: ({ id }: { id: string }): React.JSX.Element => Calendar Widget {id}
,
QuickCaptureWidget: ({ id }: { id: string }): React.JSX.Element => (
Quick Capture Widget {id}
),
AgentStatusWidget: ({ id }: { id: string }): React.JSX.Element => (
Agent Status Widget {id}
),
OrchestratorEventsWidget: ({ id }: { id: string }): React.JSX.Element => (
Orchestrator Events Widget {id}
),
}));
function createWidgetPlacement(id: string): WidgetPlacement {
return {
i: id,
x: 0,
y: 0,
w: 2,
h: 2,
};
}
describe("WidgetRenderer", () => {
it("renders hyphenated quick-capture widget IDs correctly", () => {
render();
expect(screen.getByText("Quick Capture Widget quick-capture-123")).toBeInTheDocument();
});
it("renders hyphenated agent-status widget IDs correctly", () => {
render();
expect(screen.getByText("Agent Status Widget agent-status-123")).toBeInTheDocument();
});
it("renders hyphenated orchestrator-events widget IDs correctly", () => {
render();
expect(
screen.getByText("Orchestrator Events Widget orchestrator-events-123")
).toBeInTheDocument();
});
});