22 lines
826 B
TypeScript
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");
|
|
});
|