From c63b72d041650f4656fd0bb6be050a7a29e6ea70 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Tue, 12 May 2026 00:20:37 +0100 Subject: [PATCH] test: guard skill workshop mock calls --- extensions/skill-workshop/index.test.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/extensions/skill-workshop/index.test.ts b/extensions/skill-workshop/index.test.ts index f8a7fc4e2a8..55331d5cf0e 100644 --- a/extensions/skill-workshop/index.test.ts +++ b/extensions/skill-workshop/index.test.ts @@ -72,8 +72,16 @@ function detailRecord(result: unknown): Record { return details as Record; } +function mockCall(mock: { mock: { calls: unknown[][] } }, index: number, label: string) { + const call = mock.mock.calls[index]; + if (!call) { + throw new Error(`expected ${label}`); + } + return call; +} + function firstMockArg(mock: { mock: { calls: unknown[][] } }): Record { - const arg = mock.mock.calls[0]?.[0]; + const arg = mockCall(mock, 0, "first mock call")[0]; if (!arg || typeof arg !== "object" || Array.isArray(arg)) { throw new Error("expected first mock argument object"); } @@ -106,8 +114,8 @@ describe("skill-workshop", () => { expect(tool).toBeNull(); expect(on.mock.calls.map(([hook]) => hook)).toEqual(["before_prompt_build", "agent_end"]); - expect(typeof on.mock.calls[0]?.[1]).toBe("function"); - expect(typeof on.mock.calls[1]?.[1]).toBe("function"); + expect(typeof mockCall(on, 0, "before_prompt_build hook registration")[1]).toBe("function"); + expect(typeof mockCall(on, 1, "agent_end hook registration")[1]).toBe("function"); }); it("detects user corrections and creates an animated GIF proposal", async () => {