import { describe, expect, it } from "vitest"; import { describeSlackMessageTool } from "./message-tool-api.js"; describe("Slack message tool public API", () => { it("describes configured Slack message actions without loading channel runtime", () => { expect( describeSlackMessageTool({ cfg: { channels: { slack: { botToken: "xoxb-test", }, }, }, }), ).toMatchObject({ actions: expect.arrayContaining(["send", "upload-file", "read"]), capabilities: expect.arrayContaining(["blocks"]), }); }); it("honors account-scoped action gates", () => { expect( describeSlackMessageTool({ cfg: { channels: { slack: { botToken: "xoxb-default", accounts: { ops: { botToken: "xoxb-ops", actions: { messages: false, }, }, }, }, }, }, accountId: "ops", }).actions, ).not.toContain("upload-file"); }); });