Ctrl K
ComunidadGuías…

tests/converters/pandoc.test.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { describe, expect, test } from "bun:test";

import { convert } from "../../src/converters/pandoc";
import { runCommonTests } from "./helpers/commonTests";
import { createMockExecFile } from "./helpers/converters";

runCommonTests(convert);

describe("convert", () => {
  test("should call pandoc with correct arguments (normal)", async () => {
    const { execFile, calls } = createMockExecFile();

    const result = await convert(
      "input.md",
      "markdown",
      "html",
      "output.html",
      undefined,
      execFile,
    );

    expect(calls).toEqual([
      {
        cmd: "pandoc",
        args: ["input.md", "-f", "markdown", "-t", "html", "-o", "output.html"],
      },
    ]);
    expect(result).toBe("Done");
  });

  test.each(["pdf", "latex"])("should use the xelatex pdf engine for %s", async (convertTo) => {
    const { execFile, calls } = createMockExecFile();

    await convert("input.md", "markdown", convertTo, `output.${convertTo}`, undefined, execFile);

    expect(calls[0]?.args).toEqual([
      "--pdf-engine=xelatex",
      "input.md",
      "-f",
      "markdown",
      "-t",
      convertTo,
      "-o",
      `output.${convertTo}`,
    ]);
  });

  test("should not set a pdf engine for other targets", async () => {
    const { execFile, calls } = createMockExecFile();

    await convert("input.md", "markdown", "docx", "output.docx", undefined, execFile);

    expect(calls[0]?.args.some((arg) => arg.startsWith("--pdf-engine"))).toBe(false);
  });
});