4fa4f13558
Co-authored-by: iamlukethedev <iamlukethedev@users.noreply.github.com>
58 lines
1.9 KiB
TypeScript
58 lines
1.9 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
|
|
import { readGatewayAgentFile } from "@/lib/gateway/agentFiles";
|
|
import type { GatewayClient } from "@/lib/gateway/GatewayClient";
|
|
|
|
const createMockClient = (handler: (method: string, params: unknown) => unknown) => {
|
|
return { call: vi.fn(async (method: string, params: unknown) => handler(method, params)) } as unknown as GatewayClient;
|
|
};
|
|
|
|
describe("gateway agent files helpers", () => {
|
|
it("returns exists=false when gateway reports missing", async () => {
|
|
const client = createMockClient((method) => {
|
|
if (method === "agents.files.get") {
|
|
return { file: { missing: true } };
|
|
}
|
|
return {};
|
|
});
|
|
|
|
await expect(
|
|
readGatewayAgentFile({ client, agentId: "agent-1", name: "AGENTS.md" })
|
|
).resolves.toEqual({ exists: false, content: "" });
|
|
});
|
|
|
|
it("returns exists=true and content when gateway returns content", async () => {
|
|
const client = createMockClient((method) => {
|
|
if (method === "agents.files.get") {
|
|
return { file: { missing: false, content: "hello" } };
|
|
}
|
|
return {};
|
|
});
|
|
|
|
await expect(
|
|
readGatewayAgentFile({ client, agentId: "agent-1", name: "AGENTS.md" })
|
|
).resolves.toEqual({ exists: true, content: "hello" });
|
|
});
|
|
|
|
it("coerces non-string content to empty string", async () => {
|
|
const client = createMockClient((method) => {
|
|
if (method === "agents.files.get") {
|
|
return { file: { missing: false, content: { nope: true } } };
|
|
}
|
|
return {};
|
|
});
|
|
|
|
await expect(
|
|
readGatewayAgentFile({ client, agentId: "agent-1", name: "AGENTS.md" })
|
|
).resolves.toEqual({ exists: true, content: "" });
|
|
});
|
|
|
|
it("throws when agentId is empty", async () => {
|
|
const client = createMockClient(() => ({}));
|
|
await expect(
|
|
readGatewayAgentFile({ client, agentId: " ", name: "AGENTS.md" })
|
|
).rejects.toThrow("agentId is required.");
|
|
});
|
|
});
|
|
|