Files
MikrotikManager/lib/auth-mcp.test.ts

15 lines
792 B
TypeScript

import assert from "node:assert/strict"
import { hasPermission, permissionForPath } from "./auth"
for (const permission of ["read", "admin", "approve", "pause"]) {
assert.equal(hasPermission(["mm:settings:admin"], `mm:mcp:${permission}`), true)
}
assert.equal(hasPermission(["mm:mcp:admin"], "mm:mcp:read"), true)
assert.equal(hasPermission(["mm:mcp:read"], "mm:mcp:admin"), false)
assert.equal(hasPermission(["mm:network:write"], "mm:mcp:read"), false)
assert.equal(permissionForPath("/mcp"), "mm:mcp:read")
assert.equal(permissionForPath("/mcp/connections"), "mm:mcp:read")
assert.notEqual(permissionForPath("/mcp-other"), "mm:mcp:read")
assert.equal(permissionForPath("/logs"), "mm:servers:read")
console.log("auth-mcp.test.ts: frontend MCP permissions and exact path boundaries pass")