mderman_context_nine_obsidi.../tests/vault-command-metadata.test.ts
2026-05-30 16:32:10 +02:00

69 lines
1.8 KiB
TypeScript

import { describe, expect, it } from "vitest";
import { parseVaultCommandMetadata } from "../src/vault-command-metadata";
describe("vault command metadata", () => {
it("keeps legacy command metadata compatible", () => {
const result = parseVaultCommandMetadata(
JSON.stringify([
{
id: "refresh",
label: "Refresh",
description: "Run refresh",
args: ["refresh"],
},
])
);
expect(result.warning).toBeUndefined();
expect(result.commands[0]).toMatchObject({
id: "refresh",
palette: undefined,
promptArgs: undefined,
});
});
it("parses palette flags and prompt args", () => {
const result = parseVaultCommandMetadata(
JSON.stringify([
{
id: "folder-register",
label: "Folder Register",
description: "Register a folder",
args: ["folder", "register"],
cockpit: false,
palette: true,
promptArgs: [
{
label: "Context folder",
placeholder: "impression",
argName: "name",
},
],
},
])
);
expect(result.warning).toBeUndefined();
expect(result.commands[0]).toMatchObject({
cockpit: false,
palette: true,
promptArgs: [{ label: "Context folder", placeholder: "impression", argName: "name" }],
});
});
it("rejects malformed prompt args", () => {
const result = parseVaultCommandMetadata(
JSON.stringify([
{
id: "folder-register",
label: "Folder Register",
description: "Register a folder",
args: ["folder", "register"],
promptArgs: [{ placeholder: "impression" }],
},
])
);
expect(result.warning).toContain("invalid command");
});
});