Files
NetMesh/electron/capabilities/registry.test.cjs

46 lines
1.7 KiB
JavaScript
Raw Normal View History

"use strict";
const test = require("node:test");
const assert = require("node:assert/strict");
const {
ALL_CAPABILITIES,
getCapabilityById,
getCapabilityByRpcMethod,
getCapabilityByMcpTool,
getCapabilityByCliCommand,
listCapabilities,
} = require("./registry.cjs");
const { CAPABILITY_STATUS, CAPABILITY_SURFACES } = require("./constants.cjs");
test("registry contains implemented capabilities", () => {
assert.ok(ALL_CAPABILITIES.length >= 20);
const implemented = listCapabilities({ status: CAPABILITY_STATUS.IMPLEMENTED });
assert.ok(implemented.length >= 20);
});
test("registry resolves builtin rpc methods and mcp tools", () => {
const exec = getCapabilityByRpcMethod("netcatty/exec", CAPABILITY_SURFACES.BUILTIN);
assert.equal(exec?.id, "terminal.execute");
const tool = getCapabilityByMcpTool("terminal_execute", CAPABILITY_SURFACES.BUILTIN);
assert.equal(tool?.id, "terminal.execute");
});
test("registry resolves public rpc aliases for future surfaces", () => {
const publicExec = getCapabilityByRpcMethod("public/terminalExecute", CAPABILITY_SURFACES.PUBLIC);
assert.equal(publicExec?.id, "terminal.execute");
assert.equal(publicExec?.status, CAPABILITY_STATUS.IMPLEMENTED);
});
test("registry resolves cli commands", () => {
const env = getCapabilityByCliCommand(["env"]);
assert.equal(env?.id, "session.environment");
const sftpList = getCapabilityByCliCommand(["sftp", "list"]);
assert.equal(sftpList?.id, "sftp.list");
});
test("vault and portforward capabilities are implemented", () => {
assert.equal(getCapabilityById("vault.host.notes.get")?.status, CAPABILITY_STATUS.IMPLEMENTED);
assert.equal(getCapabilityById("portforward.start")?.status, CAPABILITY_STATUS.IMPLEMENTED);
});