Files
pikasTech-HWLAB/internal/dev-entrypoint/cloud-web-routes.test.mjs
T
2026-06-05 12:02:51 +08:00

188 lines
6.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 authenticated REST RPC bridge routes", () => {
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/rpc/system.health"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "POST /v1/rpc/system.health"
});
assert.deepEqual(cloudWebProxyRoutePolicy("GET", "/v1/rpc/system.health"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "GET /v1/rpc/system.health"
});
});
test("cloud web proxies public WebUI performance telemetry to cloud-api", () => {
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/web-performance"), {
proxy: true,
authRequired: false,
publicRoute: true,
routeKey: "POST /v1/web-performance"
});
});
test("cloud web proxies authenticated API key management write routes", () => {
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/api-keys"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "POST /v1/api-keys"
});
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/api-keys/key_1/regenerate"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "POST /v1/api-keys/key_1/regenerate"
});
assert.deepEqual(cloudWebProxyRoutePolicy("DELETE", "/v1/api-keys/key_1"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "DELETE /v1/api-keys/key_1"
});
});
test("cloud web proxies authenticated Admin Access write routes without legacy grant fallback", () => {
assert.deepEqual(cloudWebProxyRoutePolicy("POST", "/v1/admin/access/check"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "POST /v1/admin/access/check"
});
assert.deepEqual(cloudWebProxyRoutePolicy("PATCH", "/v1/admin/access/users/usr_alice"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "PATCH /v1/admin/access/users/usr_alice"
});
assert.deepEqual(cloudWebProxyRoutePolicy("PUT", "/v1/admin/access/users/usr_alice/device-pods/D601-71-FREQ/viewer"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "PUT /v1/admin/access/users/usr_alice/device-pods/D601-71-FREQ/viewer"
});
assert.deepEqual(cloudWebProxyRoutePolicy("DELETE", "/v1/admin/access/users/usr_alice/device-pods/D601-71-FREQ/viewer"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "DELETE /v1/admin/access/users/usr_alice/device-pods/D601-71-FREQ/viewer"
});
assert.deepEqual(cloudWebProxyRoutePolicy("PUT", "/v1/admin/access/users/usr_alice/tools/hwpod/can-use"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "PUT /v1/admin/access/users/usr_alice/tools/hwpod/can-use"
});
assert.deepEqual(cloudWebProxyRoutePolicy("DELETE", "/v1/admin/access/users/usr_alice/tools/hwpod/can-use"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "DELETE /v1/admin/access/users/usr_alice/tools/hwpod/can-use"
});
});
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/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"
});
});
test("cloud web proxies authenticated session deletion through account conversation API", () => {
assert.deepEqual(cloudWebProxyRoutePolicy("DELETE", "/v1/agent/conversations/cnv_test"), {
proxy: true,
authRequired: true,
publicRoute: false,
routeKey: "DELETE /v1/agent/conversations/cnv_test"
});
});