28 lines
920 B
TypeScript
28 lines
920 B
TypeScript
import { describe, expect, test } from "vitest";
|
|
import { execFileSync } from "child_process";
|
|
import { mkdtempSync } from "fs";
|
|
import { tmpdir } from "os";
|
|
import { dirname, join, resolve } from "path";
|
|
import { fileURLToPath } from "url";
|
|
|
|
const repoRoot = resolve(dirname(fileURLToPath(import.meta.url)), "..");
|
|
|
|
describe("Node ESM entrypoints", () => {
|
|
test("CLI --index path normalizes via setIndexName/setConfigIndexName under Node 22+", () => {
|
|
execFileSync(process.execPath, ["scripts/build.mjs"], {
|
|
cwd: repoRoot,
|
|
encoding: "utf-8",
|
|
stdio: "pipe",
|
|
});
|
|
|
|
const indexPath = join(mkdtempSync(join(tmpdir(), "qmd-index-")), "nested", "idx");
|
|
const output = execFileSync(process.execPath, ["dist/cli/qmd.js", "--index", indexPath, "--version"], {
|
|
cwd: repoRoot,
|
|
encoding: "utf-8",
|
|
stdio: "pipe",
|
|
});
|
|
|
|
expect(output).toContain("qmd ");
|
|
}, 120_000);
|
|
});
|