From 1b5f5744beb72e259e771110d16f1cb3fde92dc7 Mon Sep 17 00:00:00 2001 From: "Fusion (runfusion.ai)" Date: Fri, 15 May 2026 20:11:53 -0700 Subject: [PATCH] =?UTF-8?q?test(FN-4649):=20complete=20Step=204=20?= =?UTF-8?q?=E2=80=94=20add=20mission-store=20hook=20triage=20test?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fusion-Task-Id: FN-4649 Fusion-Task-Lineage: 98ab6ec3-5253-4db6-93f0-de4ab7792002 --- .../core/src/__tests__/mission-store.test.ts | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/packages/core/src/__tests__/mission-store.test.ts b/packages/core/src/__tests__/mission-store.test.ts index cc5df8a1c..ff61119ab 100644 --- a/packages/core/src/__tests__/mission-store.test.ts +++ b/packages/core/src/__tests__/mission-store.test.ts @@ -1912,6 +1912,33 @@ describe("MissionStore", () => { }), ); }); + + it("fires the task-created hook during feature triage", async () => { + const { TaskStore } = await import("../store.js"); + const { setTaskCreatedHook } = await import("../task-creation-hooks.js"); + const ts = new TaskStore(tmpDir, join(tmpDir, ".fusion-global-settings"), { inMemoryDb: true }); + const msWithTs = ts.getMissionStore(); + + const hook = vi.fn(); + setTaskCreatedHook(hook); + + try { + const mission = msWithTs.createMission({ title: "Mission" }); + const milestone = msWithTs.addMilestone(mission.id, { title: "Milestone" }); + const slice = msWithTs.addSlice(milestone.id, { title: "Slice" }); + const feature = msWithTs.addFeature(slice.id, { title: "Hook Feature" }); + + const triaged = await msWithTs.triageFeature(feature.id); + + expect(hook).toHaveBeenCalledTimes(1); + expect(hook).toHaveBeenCalledWith( + expect.objectContaining({ id: triaged.taskId, title: "Hook Feature" }), + ts, + ); + } finally { + setTaskCreatedHook(undefined); + } + }); }); describe("triageSlice", () => {