mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-28 14:30:42 +00:00
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
const { agentCtor } = vi.hoisted(() => ({
|
|
agentCtor: vi.fn(function MockAgent(this: { options: unknown }, options: unknown) {
|
|
this.options = options;
|
|
}),
|
|
}));
|
|
|
|
vi.mock("undici", () => ({
|
|
Agent: agentCtor,
|
|
}));
|
|
|
|
import { createPinnedDispatcher, type PinnedHostname } from "./ssrf.js";
|
|
|
|
describe("createPinnedDispatcher", () => {
|
|
it("uses pinned lookup without overriding global family policy", () => {
|
|
const lookup = vi.fn() as unknown as PinnedHostname["lookup"];
|
|
const pinned: PinnedHostname = {
|
|
hostname: "api.telegram.org",
|
|
addresses: ["149.154.167.220"],
|
|
lookup,
|
|
};
|
|
|
|
const dispatcher = createPinnedDispatcher(pinned);
|
|
|
|
expect(dispatcher).toBeDefined();
|
|
expect(agentCtor).toHaveBeenCalledWith({
|
|
connect: {
|
|
lookup,
|
|
},
|
|
});
|
|
const firstCallArg = agentCtor.mock.calls[0]?.[0] as
|
|
| { connect?: Record<string, unknown> }
|
|
| undefined;
|
|
expect(firstCallArg?.connect?.autoSelectFamily).toBeUndefined();
|
|
});
|
|
});
|