UNPKG

arcananex-synapse

Version:

Agentic AI framework

59 lines (51 loc) 1.94 kB
import { UserMessage } from "../llm-invoker"; import * as cut from "./bedrock-llm-client-adapter"; jest.mock("../clients/bedrock", () => ({ invokeModel: jest.fn().mockResolvedValue({ body: Buffer.from( JSON.stringify({ output: {message: { role: "assistant", content: [{ text: "Mocked response" }] }}, usage: { promptTokens: 10, completionTokens: 5, totalTokens: 15, }, raw: {}, }), "utf-8" ), }), })); describe("Bedrock LLM Client Adapter", () => { it("should be implemented", () => { const adapter = new cut.BedrockLLMClientAdapter(); expect(adapter).toBeDefined(); expect(adapter.invoke).toBeDefined(); expect(typeof adapter.invoke).toBe("function"); }); it("should invoke model with messages and memories", async () => { const adapter = new cut.BedrockLLMClientAdapter(); const messages: UserMessage[] = [ { role: "user", content: "Hello, how are you?" }, { role: "assistant", content: "I'm fine, thank you!" }, ]; const memories = [{ content: "User prefers short responses." }]; const response = await adapter.invoke(messages, memories); expect(response).toBeDefined(); expect(response.message).toBeDefined(); expect(response.usage).toBeDefined(); }); it("should return mocked response", async () => { const adapter = new cut.BedrockLLMClientAdapter(); const messages: UserMessage[] = [ { role: "user", content: "What is the weather like?" }, ]; const memories = [{ content: "User likes sunny weather." }]; const response = await adapter.invoke(messages, memories); expect(response.message.role).toBe("assistant"); expect(response.message.content).toBe("Mocked response"); expect(response.usage.promptTokens).toBe(10); expect(response.usage.completionTokens).toBe(5); expect(response.usage.totalTokens).toBe(15); }); });