Files
ThothII/frontend/src/widgets/registry.test.tsx
T

22 lines
826 B
TypeScript

import { render, screen } from "@testing-library/react";
import { register, resolve } from "./registry";
import type { WidgetProps } from "./types";
test("resolve returns the registered renderer", () => {
const Dummy = (_: WidgetProps) => <div>dummy</div>;
register("dummy", Dummy);
expect(resolve("dummy")).toBe(Dummy);
});
test("resolve falls back for unknown kind and shows the JSON", () => {
const Comp = resolve("totally-unknown");
render(<Comp descriptor={{ id: "u1", widget: "totally-unknown", title: "X" } as any} onRespond={() => {}} />);
expect(screen.getByText(/Unsupported widget/i)).toBeInTheDocument();
});
test("index registers the schema-linking widget", async () => {
await import("./index");
const Comp = resolve("schema-linking");
expect(Comp.name).toBe("SchemaLinkingGateWidget");
});