copilot-api / tests /api-config.test.ts
imspsycho's picture
Initial upload from Google Colab
98c9143 verified
Raw
History Blame Contribute Delete
2.11 kB
import { afterEach, expect, test } from "bun:test"
import {
prepareForCompact,
prepareMessageProxyHeaders,
} from "../src/lib/api-config"
import { COMPACT_AUTO_CONTINUE, COMPACT_REQUEST } from "../src/lib/compact"
const originalOauthApp = process.env.COPILOT_API_OAUTH_APP
afterEach(() => {
if (originalOauthApp === undefined) {
delete process.env.COPILOT_API_OAUTH_APP
return
}
process.env.COPILOT_API_OAUTH_APP = originalOauthApp
})
test("prepareMessageProxyHeaders applies message proxy headers by default", () => {
delete process.env.COPILOT_API_OAUTH_APP
const headers: Record<string, string> = {
"user-agent": "GitHubCopilotChat/0.42.3",
}
prepareMessageProxyHeaders(headers)
expect(headers["x-interaction-type"]).toBe("messages-proxy")
expect(headers["openai-intent"]).toBe("messages-proxy")
expect(headers["user-agent"]).toBe(
"vscode_claude_code/2.1.112 (external, sdk-ts, agent-sdk/0.2.112)",
)
expect(headers["x-request-id"]).toBeDefined()
expect(headers["x-agent-task-id"]).toBe(headers["x-request-id"])
})
test("prepareMessageProxyHeaders leaves opencode headers untouched", () => {
process.env.COPILOT_API_OAUTH_APP = "opencode"
const headers: Record<string, string> = {
"Openai-Intent": "conversation-edits",
"User-Agent": "opencode/1.0.0",
}
prepareMessageProxyHeaders(headers)
expect(headers).toEqual({
"Openai-Intent": "conversation-edits",
"User-Agent": "opencode/1.0.0",
})
})
test("prepareForCompact marks compact traffic as agent initiated", () => {
const compactHeaders: Record<string, string> = { "x-initiator": "user" }
const autoContinueHeaders: Record<string, string> = { "x-initiator": "user" }
const normalHeaders: Record<string, string> = { "x-initiator": "user" }
prepareForCompact(compactHeaders, COMPACT_REQUEST)
prepareForCompact(autoContinueHeaders, COMPACT_AUTO_CONTINUE)
prepareForCompact(normalHeaders, 0)
expect(compactHeaders["x-initiator"]).toBe("agent")
expect(autoContinueHeaders["x-initiator"]).toBe("agent")
expect(normalHeaders["x-initiator"]).toBe("user")
})