refactor(test): share status transcript log writer

This commit is contained in:
Peter Steinberger
2026-02-15 15:32:20 +00:00
parent 1911942363
commit 7ea14a1c87

View File

@@ -345,40 +345,59 @@ describe("buildStatusMessage", () => {
expect(text).not.toContain("💵 Cost:"); expect(text).not.toContain("💵 Cost:");
}); });
function writeTranscriptUsageLog(params: {
dir: string;
agentId: string;
sessionId: string;
usage: {
input: number;
output: number;
cacheRead: number;
cacheWrite: number;
totalTokens: number;
};
}) {
const logPath = path.join(
params.dir,
".openclaw",
"agents",
params.agentId,
"sessions",
`${params.sessionId}.jsonl`,
);
fs.mkdirSync(path.dirname(logPath), { recursive: true });
fs.writeFileSync(
logPath,
[
JSON.stringify({
type: "message",
message: {
role: "assistant",
model: "claude-opus-4-5",
usage: params.usage,
},
}),
].join("\n"),
"utf-8",
);
}
it("prefers cached prompt tokens from the session log", async () => { it("prefers cached prompt tokens from the session log", async () => {
await withTempHome( await withTempHome(
async (dir) => { async (dir) => {
const sessionId = "sess-1"; const sessionId = "sess-1";
const logPath = path.join( writeTranscriptUsageLog({
dir, dir,
".openclaw", agentId: "main",
"agents", sessionId,
"main", usage: {
"sessions", input: 1,
`${sessionId}.jsonl`, output: 2,
); cacheRead: 1000,
fs.mkdirSync(path.dirname(logPath), { recursive: true }); cacheWrite: 0,
totalTokens: 1003,
fs.writeFileSync( },
logPath, });
[
JSON.stringify({
type: "message",
message: {
role: "assistant",
model: "claude-opus-4-5",
usage: {
input: 1,
output: 2,
cacheRead: 1000,
cacheWrite: 0,
totalTokens: 1003,
},
},
}),
].join("\n"),
"utf-8",
);
const text = buildStatusMessage({ const text = buildStatusMessage({
agent: { agent: {
@@ -408,36 +427,18 @@ describe("buildStatusMessage", () => {
await withTempHome( await withTempHome(
async (dir) => { async (dir) => {
const sessionId = "sess-worker1"; const sessionId = "sess-worker1";
const logPath = path.join( writeTranscriptUsageLog({
dir, dir,
".openclaw", agentId: "worker1",
"agents", sessionId,
"worker1", usage: {
"sessions", input: 1,
`${sessionId}.jsonl`, output: 2,
); cacheRead: 1000,
fs.mkdirSync(path.dirname(logPath), { recursive: true }); cacheWrite: 0,
totalTokens: 1003,
fs.writeFileSync( },
logPath, });
[
JSON.stringify({
type: "message",
message: {
role: "assistant",
model: "claude-opus-4-5",
usage: {
input: 1,
output: 2,
cacheRead: 1000,
cacheWrite: 0,
totalTokens: 1003,
},
},
}),
].join("\n"),
"utf-8",
);
const text = buildStatusMessage({ const text = buildStatusMessage({
agent: { agent: {
@@ -467,36 +468,18 @@ describe("buildStatusMessage", () => {
await withTempHome( await withTempHome(
async (dir) => { async (dir) => {
const sessionId = "sess-worker2"; const sessionId = "sess-worker2";
const logPath = path.join( writeTranscriptUsageLog({
dir, dir,
".openclaw", agentId: "worker2",
"agents", sessionId,
"worker2", usage: {
"sessions", input: 2,
`${sessionId}.jsonl`, output: 3,
); cacheRead: 1200,
fs.mkdirSync(path.dirname(logPath), { recursive: true }); cacheWrite: 0,
totalTokens: 1205,
fs.writeFileSync( },
logPath, });
[
JSON.stringify({
type: "message",
message: {
role: "assistant",
model: "claude-opus-4-5",
usage: {
input: 2,
output: 3,
cacheRead: 1200,
cacheWrite: 0,
totalTokens: 1205,
},
},
}),
].join("\n"),
"utf-8",
);
const text = buildStatusMessage({ const text = buildStatusMessage({
agent: { agent: {