🤖 Generated with assistance of [OhMyOpenCode](https://github.com/code-yeongyu/oh-my-opencode)
110 lines
2.6 KiB
TypeScript
110 lines
2.6 KiB
TypeScript
import { describe, expect, test } from "bun:test"
|
|
|
|
import { OMO_INTERNAL_INITIATOR_MARKER } from "../shared"
|
|
import { createChatHeadersHandler } from "./chat-headers"
|
|
|
|
describe("createChatHeadersHandler", () => {
|
|
test("sets x-initiator=agent for Copilot internal marker messages", async () => {
|
|
const handler = createChatHeadersHandler({
|
|
ctx: {
|
|
client: {
|
|
session: {
|
|
message: async () => ({
|
|
data: {
|
|
parts: [
|
|
{
|
|
type: "text",
|
|
text: `notification\n${OMO_INTERNAL_INITIATOR_MARKER}`,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
} as never,
|
|
})
|
|
const output: { headers: Record<string, string> } = { headers: {} }
|
|
|
|
await handler(
|
|
{
|
|
sessionID: "ses_1",
|
|
provider: { id: "github-copilot" },
|
|
message: {
|
|
id: "msg_1",
|
|
role: "user",
|
|
},
|
|
},
|
|
output,
|
|
)
|
|
|
|
expect(output.headers["x-initiator"]).toBe("agent")
|
|
})
|
|
|
|
test("does not override non-copilot providers", async () => {
|
|
const handler = createChatHeadersHandler({
|
|
ctx: {
|
|
client: {
|
|
session: {
|
|
message: async () => ({
|
|
data: {
|
|
parts: [
|
|
{
|
|
type: "text",
|
|
text: `notification\n${OMO_INTERNAL_INITIATOR_MARKER}`,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
} as never,
|
|
})
|
|
const output: { headers: Record<string, string> } = { headers: {} }
|
|
|
|
await handler(
|
|
{
|
|
sessionID: "ses_1",
|
|
provider: { id: "openai" },
|
|
message: {
|
|
id: "msg_1",
|
|
role: "user",
|
|
},
|
|
},
|
|
output,
|
|
)
|
|
|
|
expect(output.headers["x-initiator"]).toBeUndefined()
|
|
})
|
|
|
|
test("does not override regular user messages", async () => {
|
|
const handler = createChatHeadersHandler({
|
|
ctx: {
|
|
client: {
|
|
session: {
|
|
message: async () => ({
|
|
data: {
|
|
parts: [{ type: "text", text: "normal user message" }],
|
|
},
|
|
}),
|
|
},
|
|
},
|
|
} as never,
|
|
})
|
|
const output: { headers: Record<string, string> } = { headers: {} }
|
|
|
|
await handler(
|
|
{
|
|
sessionID: "ses_3",
|
|
provider: { id: "github-copilot" },
|
|
message: {
|
|
id: "msg_3",
|
|
role: "user",
|
|
},
|
|
},
|
|
output,
|
|
)
|
|
|
|
expect(output.headers["x-initiator"]).toBeUndefined()
|
|
})
|
|
})
|