diff --git a/src/index.ts b/src/index.ts index 3711ddf..c5741a9 100644 --- a/src/index.ts +++ b/src/index.ts @@ -70,8 +70,8 @@ export function parseLgtmArgs(args: string): LgtmCommandSpec { if (trimmed === "*") return { kind: "view_all" }; const tokens = trimmed.split(/[\s,]+/).map(token => token.trim()).filter(Boolean); - if (tokens[0] === "clear") { - return { kind: "error", message: "Task clearing lives in /tasks now. /lgtm is viewer-only." }; + if (["clear", "delete"].includes(tokens[0])) { + return { kind: "error", message: "Task management lives in /tasks now. /lgtm is viewer-only." }; } return { kind: "view", ids: tokens.map(token => token.replace(/^#/, "")).filter(Boolean) }; diff --git a/test/lgtm-command.test.ts b/test/lgtm-command.test.ts index 40deb65..3f9d186 100644 --- a/test/lgtm-command.test.ts +++ b/test/lgtm-command.test.ts @@ -55,9 +55,10 @@ describe("parseLgtmArgs", () => { }); it("rejects task-management forms", () => { - expect(parseLgtmArgs("clear")).toEqual({ kind: "error", message: "Task clearing lives in /tasks now. /lgtm is viewer-only." }); - expect(parseLgtmArgs("clear *")).toEqual({ kind: "error", message: "Task clearing lives in /tasks now. /lgtm is viewer-only." }); - expect(parseLgtmArgs("clear #7")).toEqual({ kind: "error", message: "Task clearing lives in /tasks now. /lgtm is viewer-only." }); + expect(parseLgtmArgs("clear")).toEqual({ kind: "error", message: "Task management lives in /tasks now. /lgtm is viewer-only." }); + expect(parseLgtmArgs("clear *")).toEqual({ kind: "error", message: "Task management lives in /tasks now. /lgtm is viewer-only." }); + expect(parseLgtmArgs("clear #7")).toEqual({ kind: "error", message: "Task management lives in /tasks now. /lgtm is viewer-only." }); + expect(parseLgtmArgs("delete #7")).toEqual({ kind: "error", message: "Task management lives in /tasks now. /lgtm is viewer-only." }); }); }); @@ -104,6 +105,20 @@ describe("/lgtm command", () => { await command.handler("clear 1", { ui }); expect(harness.sentMessages).toHaveLength(0); - expect(ui.notify).toHaveBeenCalledWith("Task clearing lives in /tasks now. /lgtm is viewer-only.", "error"); + expect(ui.notify).toHaveBeenCalledWith("Task management lives in /tasks now. /lgtm is viewer-only.", "error"); + }); + + it("rejects /lgtm delete and points task management back to /tasks", async () => { + const harness = makeHarness(); + await harness.execTool("TaskCreate", { subject: "Task A", description: "Desc", done_criterion: "done" }); + + const ui = harness.makeUi(); + const command = harness.commands.get("lgtm"); + if (!command) throw new Error("/lgtm not registered"); + + await command.handler("delete 1", { ui }); + + expect(harness.sentMessages).toHaveLength(0); + expect(ui.notify).toHaveBeenCalledWith("Task management lives in /tasks now. /lgtm is viewer-only.", "error"); }); });