56 lines
1.4 KiB
JavaScript
56 lines
1.4 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
const {
|
|
buildSharedProxyInfo,
|
|
checkSharedProxyGateway,
|
|
} = await import("../../src/server/sharedProxy.js");
|
|
|
|
test("gateway shared proxy info exposes host and socks proxy when running", () => {
|
|
const info = buildSharedProxyInfo({
|
|
appMode: "gateway",
|
|
proxyPort: 8080,
|
|
running: true,
|
|
hostHeader: "192.168.50.111:3456",
|
|
});
|
|
|
|
assert.equal(info.available, true);
|
|
assert.deepEqual(info.proxy, {
|
|
host: "192.168.50.111",
|
|
port: 8080,
|
|
protocol: "socks5",
|
|
httpUrl: "http://192.168.50.111:8080",
|
|
socksUrl: "socks5://192.168.50.111:8080",
|
|
});
|
|
});
|
|
|
|
test("client shared proxy check normalizes gateway response into settings patch", async () => {
|
|
const patch = await checkSharedProxyGateway(
|
|
"http://192.168.50.111:3456",
|
|
async (url) => {
|
|
assert.equal(url, "http://192.168.50.111:3456/api/shared-proxy");
|
|
return {
|
|
ok: true,
|
|
status: 200,
|
|
json: async () => ({
|
|
success: true,
|
|
available: true,
|
|
proxy: {
|
|
host: "192.168.50.111",
|
|
port: 8080,
|
|
protocol: "socks5",
|
|
},
|
|
}),
|
|
};
|
|
},
|
|
);
|
|
|
|
assert.equal(patch.sharedProxyEnabled, true);
|
|
assert.equal(patch.sharedProxyControlUrl, "http://192.168.50.111:3456");
|
|
assert.deepEqual(patch.sharedProxy, {
|
|
host: "192.168.50.111",
|
|
port: 8080,
|
|
protocol: "socks5",
|
|
});
|
|
});
|