a1842f2de7
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
77 lines
2.1 KiB
TypeScript
77 lines
2.1 KiB
TypeScript
import { beforeEach, describe, expect, test } from "bun:test"
|
|
|
|
import { clearPendingStore, consumeToolMetadata } from "./store"
|
|
import { publishToolMetadata } from "./publish-tool-metadata"
|
|
|
|
describe("publishToolMetadata", () => {
|
|
beforeEach(() => {
|
|
clearPendingStore()
|
|
})
|
|
|
|
test("#given metadata context and call id #when publishing #then it awaits metadata and stores the payload", async () => {
|
|
// given
|
|
const calls: string[] = []
|
|
let metadataFinished = false
|
|
const payload = { title: "Task", metadata: { sessionId: "ses_child" } }
|
|
|
|
// when
|
|
const result = await publishToolMetadata(
|
|
{
|
|
sessionID: "ses_parent",
|
|
callID: "call_123",
|
|
metadata: async input => {
|
|
calls.push(input.title ?? "")
|
|
await new Promise(resolve => setTimeout(resolve, 1))
|
|
metadataFinished = true
|
|
},
|
|
},
|
|
payload
|
|
)
|
|
|
|
// then
|
|
expect(result).toEqual({ stored: true })
|
|
expect(metadataFinished).toBe(true)
|
|
expect(calls).toEqual(["Task"])
|
|
expect(consumeToolMetadata("ses_parent", "call_123")).toEqual(payload)
|
|
})
|
|
|
|
test("#given legacy call id variant #when publishing #then it stores with the canonical resolver", async () => {
|
|
// given
|
|
const payload = { title: "Task", metadata: { sessionId: "ses_child" } }
|
|
|
|
// when
|
|
const result = await publishToolMetadata(
|
|
{
|
|
sessionID: "ses_parent",
|
|
callId: " call_legacy ",
|
|
},
|
|
payload
|
|
)
|
|
|
|
// then
|
|
expect(result).toEqual({ stored: true })
|
|
expect(consumeToolMetadata("ses_parent", "call_legacy")).toEqual(payload)
|
|
})
|
|
|
|
test("#given missing call id #when publishing #then it still emits metadata but skips storing", async () => {
|
|
// given
|
|
let metadataCalls = 0
|
|
|
|
// when
|
|
const result = await publishToolMetadata(
|
|
{
|
|
sessionID: "ses_parent",
|
|
metadata: () => {
|
|
metadataCalls += 1
|
|
},
|
|
},
|
|
{ title: "Task" }
|
|
)
|
|
|
|
// then
|
|
expect(result).toEqual({ stored: false })
|
|
expect(metadataCalls).toBe(1)
|
|
expect(consumeToolMetadata("ses_parent", "call_missing")).toBeUndefined()
|
|
})
|
|
})
|