| |
| |
| |
| |
| |
| import { describe, expect, it, vi } from "vitest"; |
| import { createHookRunner } from "./hooks.js"; |
| import { createMockPluginRegistry } from "./hooks.test-helpers.js"; |
|
|
| describe("message_sending hook runner", () => { |
| it("runMessageSending invokes registered hooks and returns modified content", async () => { |
| const handler = vi.fn().mockReturnValue({ content: "modified content" }); |
| const registry = createMockPluginRegistry([{ hookName: "message_sending", handler }]); |
| const runner = createHookRunner(registry); |
|
|
| const result = await runner.runMessageSending( |
| { to: "user-123", content: "original content" }, |
| { channelId: "telegram" }, |
| ); |
|
|
| expect(handler).toHaveBeenCalledWith( |
| { to: "user-123", content: "original content" }, |
| { channelId: "telegram" }, |
| ); |
| expect(result?.content).toBe("modified content"); |
| }); |
|
|
| it("runMessageSending can cancel message delivery", async () => { |
| const handler = vi.fn().mockReturnValue({ cancel: true }); |
| const registry = createMockPluginRegistry([{ hookName: "message_sending", handler }]); |
| const runner = createHookRunner(registry); |
|
|
| const result = await runner.runMessageSending( |
| { to: "user-123", content: "blocked" }, |
| { channelId: "telegram" }, |
| ); |
|
|
| expect(result?.cancel).toBe(true); |
| }); |
| }); |
|
|
| describe("message_sent hook runner", () => { |
| it("runMessageSent invokes registered hooks with success=true", async () => { |
| const handler = vi.fn(); |
| const registry = createMockPluginRegistry([{ hookName: "message_sent", handler }]); |
| const runner = createHookRunner(registry); |
|
|
| await runner.runMessageSent( |
| { to: "user-123", content: "hello", success: true }, |
| { channelId: "telegram" }, |
| ); |
|
|
| expect(handler).toHaveBeenCalledWith( |
| { to: "user-123", content: "hello", success: true }, |
| { channelId: "telegram" }, |
| ); |
| }); |
|
|
| it("runMessageSent invokes registered hooks with error on failure", async () => { |
| const handler = vi.fn(); |
| const registry = createMockPluginRegistry([{ hookName: "message_sent", handler }]); |
| const runner = createHookRunner(registry); |
|
|
| await runner.runMessageSent( |
| { to: "user-123", content: "hello", success: false, error: "timeout" }, |
| { channelId: "telegram" }, |
| ); |
|
|
| expect(handler).toHaveBeenCalledWith( |
| { to: "user-123", content: "hello", success: false, error: "timeout" }, |
| { channelId: "telegram" }, |
| ); |
| }); |
| }); |
|
|