mirror of
https://github.com/samiyev/puaros.git
synced 2025-12-27 23:06:54 +05:00
- Add RedisClient with connection management and AOF config - Add RedisStorage implementing full IStorage interface - Add Redis key schema for project and session data - Add generateProjectName() utility - Add 68 unit tests for Redis module (159 total) - Update ESLint: no-unnecessary-type-parameters as warn
77 lines
2.5 KiB
TypeScript
77 lines
2.5 KiB
TypeScript
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest"
|
|
import {
|
|
createUserMessage,
|
|
createAssistantMessage,
|
|
createToolMessage,
|
|
createSystemMessage,
|
|
} from "../../../../src/domain/value-objects/ChatMessage.js"
|
|
|
|
describe("ChatMessage", () => {
|
|
beforeEach(() => {
|
|
vi.useFakeTimers()
|
|
vi.setSystemTime(new Date("2025-01-01T00:00:00Z"))
|
|
})
|
|
|
|
afterEach(() => {
|
|
vi.useRealTimers()
|
|
})
|
|
|
|
describe("createUserMessage", () => {
|
|
it("should create user message", () => {
|
|
const msg = createUserMessage("Hello")
|
|
|
|
expect(msg.role).toBe("user")
|
|
expect(msg.content).toBe("Hello")
|
|
expect(msg.timestamp).toBe(Date.now())
|
|
})
|
|
})
|
|
|
|
describe("createAssistantMessage", () => {
|
|
it("should create assistant message without tool calls", () => {
|
|
const msg = createAssistantMessage("Response")
|
|
|
|
expect(msg.role).toBe("assistant")
|
|
expect(msg.content).toBe("Response")
|
|
expect(msg.toolCalls).toBeUndefined()
|
|
})
|
|
|
|
it("should create assistant message with tool calls", () => {
|
|
const toolCalls = [{ id: "1", name: "get_lines", params: {}, timestamp: Date.now() }]
|
|
const stats = { tokens: 100, timeMs: 500, toolCalls: 1 }
|
|
const msg = createAssistantMessage("Response", toolCalls, stats)
|
|
|
|
expect(msg.toolCalls).toEqual(toolCalls)
|
|
expect(msg.stats).toEqual(stats)
|
|
})
|
|
})
|
|
|
|
describe("createToolMessage", () => {
|
|
it("should create tool message with results", () => {
|
|
const results = [{ callId: "1", success: true, data: "data", executionTimeMs: 10 }]
|
|
const msg = createToolMessage(results)
|
|
|
|
expect(msg.role).toBe("tool")
|
|
expect(msg.toolResults).toEqual(results)
|
|
expect(msg.content).toContain("[1] Success")
|
|
})
|
|
|
|
it("should format error results", () => {
|
|
const results = [
|
|
{ callId: "2", success: false, error: "Not found", executionTimeMs: 5 },
|
|
]
|
|
const msg = createToolMessage(results)
|
|
|
|
expect(msg.content).toContain("[2] Error: Not found")
|
|
})
|
|
})
|
|
|
|
describe("createSystemMessage", () => {
|
|
it("should create system message", () => {
|
|
const msg = createSystemMessage("System prompt")
|
|
|
|
expect(msg.role).toBe("system")
|
|
expect(msg.content).toBe("System prompt")
|
|
})
|
|
})
|
|
})
|