45 lines
1.4 KiB
TypeScript
45 lines
1.4 KiB
TypeScript
import { describe, expect, test } from "vitest";
|
|
import {
|
|
connectOk,
|
|
installGatewayTestHooks,
|
|
rpcReq,
|
|
startServerWithClient,
|
|
testState,
|
|
} from "./test-helpers.js";
|
|
|
|
installGatewayTestHooks();
|
|
|
|
describe("gateway server agents", () => {
|
|
test("lists configured agents via agents.list RPC", async () => {
|
|
testState.agentsConfig = {
|
|
list: [
|
|
{ id: "work", name: "Work", default: true },
|
|
{ id: "home", name: "Home" },
|
|
],
|
|
};
|
|
|
|
const { ws } = await startServerWithClient();
|
|
const hello = await connectOk(ws);
|
|
expect((hello as unknown as { features?: { methods?: string[] } }).features?.methods).toEqual(
|
|
expect.arrayContaining(["agents.list"]),
|
|
);
|
|
|
|
const res = await rpcReq<{
|
|
defaultId: string;
|
|
mainKey: string;
|
|
scope: string;
|
|
agents: Array<{ id: string; name?: string }>;
|
|
}>(ws, "agents.list", {});
|
|
|
|
expect(res.ok).toBe(true);
|
|
expect(res.payload?.defaultId).toBe("work");
|
|
expect(res.payload?.mainKey).toBe("main");
|
|
expect(res.payload?.scope).toBe("per-sender");
|
|
expect(res.payload?.agents.map((agent) => agent.id)).toEqual(["work", "home", "main"]);
|
|
const work = res.payload?.agents.find((agent) => agent.id === "work");
|
|
const home = res.payload?.agents.find((agent) => agent.id === "home");
|
|
expect(work?.name).toBe("Work");
|
|
expect(home?.name).toBe("Home");
|
|
});
|
|
});
|