33 lines
910 B
TypeScript
33 lines
910 B
TypeScript
import { vi } from "vitest";
|
|
import * as MermaidToExcalidraw from "@excalidraw/mermaid-to-excalidraw";
|
|
import type { parseMermaidToExcalidraw } from "@excalidraw/mermaid-to-excalidraw";
|
|
import React from "react";
|
|
|
|
export const mockMermaidToExcalidraw = (opts: {
|
|
parseMermaidToExcalidraw: typeof parseMermaidToExcalidraw;
|
|
mockRef?: boolean;
|
|
}) => {
|
|
vi.mock("@excalidraw/mermaid-to-excalidraw", async (importActual) => {
|
|
const module = (await importActual()) as any;
|
|
|
|
return {
|
|
__esModule: true,
|
|
...module,
|
|
};
|
|
});
|
|
const parseMermaidToExcalidrawSpy = vi.spyOn(
|
|
MermaidToExcalidraw,
|
|
"parseMermaidToExcalidraw",
|
|
);
|
|
|
|
parseMermaidToExcalidrawSpy.mockImplementation(opts.parseMermaidToExcalidraw);
|
|
|
|
if (opts.mockRef) {
|
|
vi.spyOn(React, "useRef").mockReturnValue({
|
|
current: {
|
|
parseMermaidToExcalidraw: parseMermaidToExcalidrawSpy,
|
|
},
|
|
});
|
|
}
|
|
};
|