import { describe, it, expect } from "bun:test"; import { showGlobalHelp, showCommandHelp } from "../../src/cli/help.ts"; describe("showGlobalHelp", () => { it("包含所有命令行", () => { const output = showGlobalHelp(); expect(output).toContain("rune <命令> [参数]"); expect(output).toContain("init <工具...>"); expect(output).toContain("discuss"); expect(output).toContain("plan <名称>"); expect(output).toContain("build <名称>"); expect(output).toContain("archive <名称>"); expect(output).toContain("status"); expect(output).toContain("help"); expect(output).toContain("version"); }); it("包含示例", () => { const output = showGlobalHelp(); expect(output).toContain("rune init opencode"); expect(output).toContain("rune plan add-login"); expect(output).toContain("rune status"); }); it("以标题行开头", () => { const output = showGlobalHelp(); expect(output.startsWith("Rune")).toBe(true); }); }); describe("showCommandHelp", () => { it("plan 命令包含用法、参数、描述、示例", () => { const output = showCommandHelp("plan"); expect(output).toContain("rune plan "); expect(output).toContain(""); expect(output).toContain("规划阶段"); expect(output).toContain("rune plan add-user-auth"); }); it("init 命令包含工具参数说明", () => { const output = showCommandHelp("init"); expect(output).toContain("rune init <工具...>"); expect(output).toContain("opencode"); }); it("不存在的命令返回 null", () => { const output = showCommandHelp("nonexistent"); expect(output).toBeNull(); }); });