mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-05 06:30:21 +00:00
refactor: extract shared sandbox and gateway plumbing
This commit is contained in:
45
src/gateway/http-utils.request-context.test.ts
Normal file
45
src/gateway/http-utils.request-context.test.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
import type { IncomingMessage } from "node:http";
|
||||
import { describe, expect, it } from "vitest";
|
||||
import { resolveGatewayRequestContext } from "./http-utils.js";
|
||||
|
||||
function createReq(headers: Record<string, string> = {}): IncomingMessage {
|
||||
return { headers } as IncomingMessage;
|
||||
}
|
||||
|
||||
describe("resolveGatewayRequestContext", () => {
|
||||
it("uses normalized x-openclaw-message-channel when enabled", () => {
|
||||
const result = resolveGatewayRequestContext({
|
||||
req: createReq({ "x-openclaw-message-channel": " Custom-Channel " }),
|
||||
model: "openclaw",
|
||||
sessionPrefix: "openai",
|
||||
defaultMessageChannel: "webchat",
|
||||
useMessageChannelHeader: true,
|
||||
});
|
||||
|
||||
expect(result.messageChannel).toBe("custom-channel");
|
||||
});
|
||||
|
||||
it("uses default messageChannel when header support is disabled", () => {
|
||||
const result = resolveGatewayRequestContext({
|
||||
req: createReq({ "x-openclaw-message-channel": "custom-channel" }),
|
||||
model: "openclaw",
|
||||
sessionPrefix: "openresponses",
|
||||
defaultMessageChannel: "webchat",
|
||||
useMessageChannelHeader: false,
|
||||
});
|
||||
|
||||
expect(result.messageChannel).toBe("webchat");
|
||||
});
|
||||
|
||||
it("includes session prefix and user in generated session key", () => {
|
||||
const result = resolveGatewayRequestContext({
|
||||
req: createReq(),
|
||||
model: "openclaw",
|
||||
user: "alice",
|
||||
sessionPrefix: "openresponses",
|
||||
defaultMessageChannel: "webchat",
|
||||
});
|
||||
|
||||
expect(result.sessionKey).toContain("openresponses-user:alice");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user