showDestroy and portal were each passed by one caller, the old card and the old table cell, and neither exists now. Two test headers still named the detail panel.
81 lines
2.9 KiB
JavaScript
81 lines
2.9 KiB
JavaScript
// An opened agent card's permissions editor: its starting selection and the
|
|
// summary line. Run by `npm test` with Node's type stripping.
|
|
import assert from "node:assert/strict";
|
|
import { test } from "node:test";
|
|
import {
|
|
editorSelection,
|
|
grantSummary,
|
|
internetBody,
|
|
internetMode,
|
|
internetSummary,
|
|
} from "../src/agent/detail/permissions.ts";
|
|
|
|
const all = ["messaging", "meta", "inbox", "execution", "manage_root_agent"];
|
|
const defaults = ["messaging", "meta", "inbox", "execution"];
|
|
|
|
test("an agent the swarm sets nothing for starts on the default set", () => {
|
|
assert.deepEqual(editorSelection(undefined, all, defaults), defaults);
|
|
});
|
|
|
|
test("a stored list is the starting selection, empty included", () => {
|
|
assert.deepEqual(
|
|
editorSelection(["meta", "manage_root_agent"], all, defaults),
|
|
["meta", "manage_root_agent"],
|
|
);
|
|
assert.deepEqual(editorSelection([], all, defaults), []);
|
|
});
|
|
|
|
test("a stored name the catalogue does not list is not offered", () => {
|
|
assert.deepEqual(editorSelection(["meta", "retired"], all, defaults), [
|
|
"meta",
|
|
]);
|
|
});
|
|
|
|
test("the summary tells unset, empty and a list apart", () => {
|
|
assert.equal(grantSummary(undefined), "the default set");
|
|
assert.equal(grantSummary([]), "none");
|
|
assert.equal(grantSummary(["meta", "inbox"]), "2 granted");
|
|
});
|
|
|
|
test("an absent internet flag reads as unrestricted, marked legacy", () => {
|
|
assert.equal(internetSummary(undefined), "unrestricted (legacy)");
|
|
assert.equal(internetSummary(true), "unrestricted");
|
|
assert.equal(internetSummary(false), "restricted");
|
|
});
|
|
|
|
test("the internet toggle sends the stored list with the flag", () => {
|
|
assert.deepEqual(internetBody(["meta", "inbox"], "restricted"), {
|
|
permissions: ["meta", "inbox"],
|
|
unrestricted_internet: false,
|
|
});
|
|
assert.deepEqual(internetBody([], "unrestricted"), {
|
|
permissions: [],
|
|
unrestricted_internet: true,
|
|
});
|
|
});
|
|
|
|
test("with no stored list the toggle leaves the list unset", () => {
|
|
assert.deepEqual(internetBody(undefined, "restricted"), {
|
|
unrestricted_internet: false,
|
|
});
|
|
});
|
|
|
|
test("log is internet_log beside an explicit false, and nothing else reads as it", () => {
|
|
assert.equal(internetMode(false, true), "log");
|
|
assert.equal(internetMode(false, undefined), "restricted");
|
|
assert.equal(internetMode(false, false), "restricted");
|
|
assert.equal(internetMode(true, true), "unrestricted");
|
|
assert.equal(internetMode(undefined, true), "unrestricted");
|
|
assert.match(internetSummary(false, true), /^log /);
|
|
assert.equal(internetSummary(false), "restricted");
|
|
});
|
|
|
|
test("the log mode keeps the old flag false and names internet_log; the others leave it out", () => {
|
|
assert.deepEqual(internetBody(["meta"], "log"), {
|
|
permissions: ["meta"],
|
|
unrestricted_internet: false,
|
|
internet_log: true,
|
|
});
|
|
assert.equal("internet_log" in internetBody([], "restricted"), false);
|
|
assert.equal("internet_log" in internetBody([], "unrestricted"), false);
|
|
});
|