28 lines · 967 B · TypeScript
RawDownload
import type { DiffsHighlighter } from "@pierre/diffs";import { expect, it, vi } from "vite-plus/test"; const { getSharedHighlighter } = vi.hoisted(() => ({  getSharedHighlighter: vi.fn(),})); vi.mock("@pierre/diffs", () => ({  getSharedHighlighter,})); import { getSyntaxHighlighterPromise } from "./syntaxHighlighting"; it("caches the recovered text highlighter for unsupported languages", async () => {  const textHighlighter = {} as DiffsHighlighter;  getSharedHighlighter.mockImplementation(({ langs }: { langs: string[] }) =>    langs[0] === "text"      ? Promise.resolve(textHighlighter)      : Promise.reject(new Error("unsupported language")),  );   const first = getSyntaxHighlighterPromise("unsupported-test-language");  await expect(first).resolves.toBe(textHighlighter);  const second = getSyntaxHighlighterPromise("unsupported-test-language");   expect(second).toBe(first);  expect(getSharedHighlighter).toHaveBeenCalledTimes(2);});