diff --git a/packages/core/src/context-menu/context-menu.test.ts b/packages/core/src/context-menu/context-menu.test.ts index b06a4a79cb..1c4d9ebc14 100644 --- a/packages/core/src/context-menu/context-menu.test.ts +++ b/packages/core/src/context-menu/context-menu.test.ts @@ -142,6 +142,18 @@ describe("ContextMenuService.showTaskContextMenu", () => { ); }); + it("offers Delete for active tasks and resolves without an inline confirm", async () => { + const menu = new FakeContextMenu(); + // dialogReturning(0) would cancel any inline confirm; Delete must resolve + // anyway because confirmation happens downstream in TaskDeletionService. + const result = makeService(menu, dialogReturning(0)).showTaskContextMenu( + baseTask, + ); + await menu.shown; + findItem(menu.lastItems, "Delete").click(); + expect(await result).toEqual({ action: { type: "delete" } }); + }); + it("resolves to null when the menu is dismissed", async () => { const menu = new FakeContextMenu(); const result = makeService(menu).showTaskContextMenu(baseTask); diff --git a/packages/core/src/context-menu/context-menu.ts b/packages/core/src/context-menu/context-menu.ts index d4437e9488..34f4b5ff12 100644 --- a/packages/core/src/context-menu/context-menu.ts +++ b/packages/core/src/context-menu/context-menu.ts @@ -185,6 +185,9 @@ export class ContextMenuService { }, }, ), + // Confirmation is handled downstream by TaskDeletionService via + // confirmDeleteTask (worktree-aware wording), so no inline confirm here. + this.item("Delete", { type: "delete" }), ]); }