From 43c4ad37f3fd3fe199e56947b804947bea6db54e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hartmut=20N=C3=B6renberg?= Date: Wed, 1 Apr 2026 00:41:31 +0200 Subject: [PATCH] test(api): cover assistant auth guard --- .../assistant-tools-auth-guard.test.ts | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 packages/api/src/__tests__/assistant-tools-auth-guard.test.ts diff --git a/packages/api/src/__tests__/assistant-tools-auth-guard.test.ts b/packages/api/src/__tests__/assistant-tools-auth-guard.test.ts new file mode 100644 index 0000000..5e3790c --- /dev/null +++ b/packages/api/src/__tests__/assistant-tools-auth-guard.test.ts @@ -0,0 +1,31 @@ +import { describe, expect, it, vi } from "vitest"; +import { SystemRole } from "@capakraken/shared"; + +vi.mock("@capakraken/application", async (importOriginal) => { + const actual = await importOriginal(); + return { + ...actual, + getDashboardBudgetForecast: vi.fn().mockResolvedValue([]), + getDashboardPeakTimes: vi.fn().mockResolvedValue([]), + listAssignmentBookings: vi.fn().mockResolvedValue([]), + }; +}); + +import { executeTool, type ToolContext } from "../router/assistant-tools.js"; +import { createToolContext } from "./assistant-tools-notification-test-helpers.js"; + +describe("assistant tool auth guard", () => { + it("returns a stable assistant error when authenticated assistant context is missing", async () => { + const ctx = { + ...createToolContext({}, SystemRole.ADMIN), + session: null, + dbUser: null, + } as unknown as ToolContext; + + const result = await executeTool("list_users", "{}", ctx); + + expect(JSON.parse(result.content)).toEqual({ + error: "Authenticated assistant context is required for this tool.", + }); + }); +});