101 lines
3.5 KiB
JavaScript
101 lines
3.5 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import test from "node:test";
|
|
|
|
import { cloudWebProxyRoutePolicy } from "./cloud-web-routes.mjs";
|
|
|
|
test("cloud web proxies skills routes through authenticated cloud-api", () => {
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("GET", "/v1/skills"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "GET /v1/skills"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("GET", "/v1/skills/skill_1/tree"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "GET /v1/skills/skill_1/tree"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/skills/uploads"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/skills/uploads"
|
|
});
|
|
});
|
|
|
|
test("cloud web proxies only supported authenticated device-pod write routes", () => {
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/device-pods/D601-F103-V2/jobs"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/device-pods/D601-F103-V2/jobs"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/device-pods/D601-F103-V2/jobs/job_1/cancel"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/device-pods/D601-F103-V2/jobs/job_1/cancel"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/device-pods/D601-F103-V2/leases"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/device-pods/D601-F103-V2/leases"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/device-pods/D601-F103-V2/status"), {
|
|
proxy: false,
|
|
authRequired: false,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/device-pods/D601-F103-V2/status"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/device-pods/D601-F103-V2/jobs/job_1/output"), {
|
|
proxy: false,
|
|
authRequired: false,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/device-pods/D601-F103-V2/jobs/job_1/output"
|
|
});
|
|
});
|
|
|
|
test("cloud web proxies authenticated account workbench write routes", () => {
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("PATCH", "/v1/workbench/workspace/ws_default"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "PATCH /v1/workbench/workspace/ws_default"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("PUT", "/v1/workbench/workspace/ws_default"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "PUT /v1/workbench/workspace/ws_default"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/workbench/workspace/ws_default/select-conversation"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/workbench/workspace/ws_default/select-conversation"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/workbench/workspace/ws_default/reset"), {
|
|
proxy: true,
|
|
authRequired: true,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/workbench/workspace/ws_default/reset"
|
|
});
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/workbench/workspace/ws_default/events"), {
|
|
proxy: false,
|
|
authRequired: false,
|
|
publicRoute: false,
|
|
routeKey: "POST /v1/workbench/workspace/ws_default/events"
|
|
});
|
|
});
|
|
|
|
test("cloud web proxies Code Agent steer through the Web-equivalent public API path", () => {
|
|
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/agent/chat/steer"), {
|
|
proxy: true,
|
|
authRequired: false,
|
|
publicRoute: true,
|
|
routeKey: "POST /v1/agent/chat/steer"
|
|
});
|
|
});
|