Files
OmniRoute/tests/unit/public-api-routes.test.ts
diegosouzapw 46e5aa5522 refactor(api): consolidate auth routing and provider config handling
Centralize optional API key capability checks so dashboard forms and
provider schemas share the same rules, including keyless Pollinations
support and cloud-agent batch testing mode.

Also align auto-combo config on `routerStrategy`, keep legacy combo
reads compatible, preserve MCP routes as management APIs, narrow
`require-login` public access to readonly/bootstrap flows, and make
cloud-agent CORS reflect the request origin for credentialed requests.
2026-05-13 03:47:40 -03:00

28 lines
1.3 KiB
TypeScript

import test from "node:test";
import assert from "node:assert/strict";
import { isPublicApiRoute } from "../../src/shared/constants/publicApiRoutes.ts";
test("isPublicApiRoute allows public management prefixes", () => {
assert.equal(isPublicApiRoute("/api/auth/login"), true);
assert.equal(isPublicApiRoute("/api/v1/chat/completions"), true);
assert.equal(isPublicApiRoute("/api/oauth/cursor/callback"), true);
});
test("isPublicApiRoute allows readonly health and require-login bootstrap routes", () => {
assert.equal(isPublicApiRoute("/api/monitoring/health", "GET"), true);
assert.equal(isPublicApiRoute("/api/monitoring/health", "HEAD"), true);
assert.equal(isPublicApiRoute("/api/monitoring/health", "OPTIONS"), true);
assert.equal(isPublicApiRoute("/api/monitoring/health", "DELETE"), false);
assert.equal(isPublicApiRoute("/api/settings/require-login", "GET"), true);
assert.equal(isPublicApiRoute("/api/settings/require-login", "HEAD"), true);
assert.equal(isPublicApiRoute("/api/settings/require-login", "OPTIONS"), true);
assert.equal(isPublicApiRoute("/api/settings/require-login", "POST"), false);
});
test("isPublicApiRoute rejects non-public management routes", () => {
assert.equal(isPublicApiRoute("/api/settings"), false);
assert.equal(isPublicApiRoute("/api/providers"), false);
});