Files
kandev/apps/web/components/settings/canvas-share-help.test.tsx
T
2026-09-14 09:31:20 +01:00

24 lines
1002 B
TypeScript

import { afterEach, describe, expect, it, vi } from "vitest";
import { cleanup, fireEvent, render, screen, waitFor } from "@testing-library/react";
vi.mock("react-i18next", () => ({ useTranslation: () => ({ t: (key: string) => key }) }));
import { CanvasShareHelp } from "./canvas-share-help";
afterEach(() => cleanup());
describe("CanvasShareHelp", () => {
it("shows a copyable canvas registry example", async () => {
const writeText = vi.fn().mockResolvedValue(undefined);
Object.defineProperty(navigator, "clipboard", { configurable: true, value: { writeText } });
render(<CanvasShareHelp review={null} />);
expect(screen.getByText(/kind: canvas/)).toBeTruthy();
fireEvent.click(screen.getByRole("button", { name: "canvases:copyRegistryExample" }));
expect(writeText).toHaveBeenCalledWith(expect.stringContaining("previews:"));
await waitFor(() =>
expect(screen.getByRole("button", { name: "canvases:registryExampleCopied" })).toBeTruthy(),
);
});
});