chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,87 @@
|
||||
import { describe, it } from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
import { resolvePlaywrightProxy } from "../../open-sse/services/browserPool.ts";
|
||||
|
||||
describe("resolvePlaywrightProxy", () => {
|
||||
it("returns undefined when no proxy is configured", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("gemini-web", {
|
||||
resolveProxy: async () => null,
|
||||
});
|
||||
assert.strictEqual(proxy, undefined);
|
||||
});
|
||||
|
||||
it("formats http proxy server string", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("gemini-web", {
|
||||
resolveProxy: async () => ({ type: "http", host: "proxy.example.com", port: 8080 }),
|
||||
});
|
||||
assert.deepStrictEqual(proxy, { server: "http://proxy.example.com:8080" });
|
||||
});
|
||||
|
||||
it("formats socks5 proxy server string", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("gemini-web", {
|
||||
resolveProxy: async () => ({ type: "socks5", host: "socks.example.com", port: 1080 }),
|
||||
});
|
||||
assert.deepStrictEqual(proxy, { server: "socks5://socks.example.com:1080" });
|
||||
});
|
||||
|
||||
it("defaults to http scheme when type is absent", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("claude-web", {
|
||||
resolveProxy: async () => ({ host: "proxy.example.com", port: 3128 }),
|
||||
});
|
||||
assert.deepStrictEqual(proxy, { server: "http://proxy.example.com:3128" });
|
||||
});
|
||||
|
||||
it("includes credentials when username is set", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("claude-web", {
|
||||
resolveProxy: async () => ({
|
||||
type: "http",
|
||||
host: "proxy.example.com",
|
||||
port: 3128,
|
||||
username: "user",
|
||||
password: "pass",
|
||||
}),
|
||||
});
|
||||
assert.deepStrictEqual(proxy, {
|
||||
server: "http://proxy.example.com:3128",
|
||||
username: "user",
|
||||
password: "pass",
|
||||
});
|
||||
});
|
||||
|
||||
it("uses empty string for password when null", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("claude-web", {
|
||||
resolveProxy: async () => ({
|
||||
type: "http",
|
||||
host: "proxy.example.com",
|
||||
port: 3128,
|
||||
username: "user",
|
||||
password: null,
|
||||
}),
|
||||
});
|
||||
assert.deepStrictEqual(proxy, {
|
||||
server: "http://proxy.example.com:3128",
|
||||
username: "user",
|
||||
password: "",
|
||||
});
|
||||
});
|
||||
|
||||
it("swallows DB errors and returns undefined", async () => {
|
||||
const proxy = await resolvePlaywrightProxy("gemini-web", {
|
||||
resolveProxy: async () => {
|
||||
throw new Error("no such table: proxy_registry");
|
||||
},
|
||||
});
|
||||
assert.strictEqual(proxy, undefined);
|
||||
});
|
||||
|
||||
it("passes the actual provider key to the resolver", async () => {
|
||||
let capturedKey = "";
|
||||
await resolvePlaywrightProxy("gemini-web", {
|
||||
resolveProxy: async (id) => {
|
||||
capturedKey = id;
|
||||
return null;
|
||||
},
|
||||
});
|
||||
assert.strictEqual(capturedKey, "gemini-web");
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user