import { describe, expect, it } from "vitest"; import { parseSlashHelpSubcommand, parseSlashInvocation } from "../../src/feishu/slashCommands.js"; describe("slash command parser", () => { it("parses a slash invocation without resolving it", () => { expect(parseSlashInvocation("/new")).toEqual({ name: "new", args: [] }); expect(parseSlashInvocation("/review 看看这节")).toEqual({ name: "review", args: ["看看这节"] }); expect(parseSlashInvocation("写教案")).toBeNull(); }); it("parses help subcommands only in the exact / help form", () => { expect(parseSlashHelpSubcommand({ name: "new", args: ["help"] })).toBe("new"); expect(parseSlashHelpSubcommand({ name: "unknown", args: ["help"] })).toBe("unknown"); expect(parseSlashHelpSubcommand({ name: "new", args: ["help", "please"] })).toBeNull(); expect(parseSlashHelpSubcommand({ name: "help", args: ["new"] })).toBeNull(); }); });