Files
openclaw/src/agents/pi-embedded-runner/compaction-runtime-context.test.ts
2026-03-23 02:14:00 -07:00

78 lines
2.4 KiB
TypeScript

import { describe, expect, it } from "vitest";
import type { OpenClawConfig } from "../../config/config.js";
import { buildEmbeddedCompactionRuntimeContext } from "./compaction-runtime-context.js";
describe("buildEmbeddedCompactionRuntimeContext", () => {
it("preserves sender and current message routing for compaction", () => {
expect(
buildEmbeddedCompactionRuntimeContext({
sessionKey: "agent:main:thread:1",
messageChannel: "slack",
messageProvider: "slack",
agentAccountId: "acct-1",
currentChannelId: "C123",
currentThreadTs: "thread-9",
currentMessageId: "msg-42",
authProfileId: "openai:p1",
workspaceDir: "/tmp/workspace",
agentDir: "/tmp/agent",
config: {} as OpenClawConfig,
senderIsOwner: true,
senderId: "user-123",
provider: "openai-codex",
modelId: "gpt-5.4",
thinkLevel: "off",
reasoningLevel: "on",
extraSystemPrompt: "extra",
ownerNumbers: ["+15555550123"],
}),
).toMatchObject({
sessionKey: "agent:main:thread:1",
messageChannel: "slack",
messageProvider: "slack",
agentAccountId: "acct-1",
currentChannelId: "C123",
currentThreadTs: "thread-9",
currentMessageId: "msg-42",
authProfileId: "openai:p1",
workspaceDir: "/tmp/workspace",
agentDir: "/tmp/agent",
senderId: "user-123",
provider: "openai-codex",
model: "gpt-5.4",
});
});
it("normalizes nullable compaction routing fields to undefined", () => {
expect(
buildEmbeddedCompactionRuntimeContext({
sessionKey: null,
messageChannel: null,
messageProvider: null,
agentAccountId: null,
currentChannelId: null,
currentThreadTs: null,
currentMessageId: null,
authProfileId: null,
workspaceDir: "/tmp/workspace",
agentDir: "/tmp/agent",
senderId: null,
provider: null,
modelId: null,
}),
).toMatchObject({
sessionKey: undefined,
messageChannel: undefined,
messageProvider: undefined,
agentAccountId: undefined,
currentChannelId: undefined,
currentThreadTs: undefined,
currentMessageId: undefined,
authProfileId: undefined,
senderId: undefined,
provider: undefined,
model: undefined,
});
});
});