48 lines
1.8 KiB
TypeScript
48 lines
1.8 KiB
TypeScript
import { describe, expect, it, vi } from "vitest";
|
|
import type { AgentApiClient } from "./client";
|
|
import { fetchAgentBootstrap, fetchAgentSessions } from "./swr";
|
|
|
|
describe("Agent API SWR helpers", () => {
|
|
it("loads bootstrap data with a normalized UI registry", async () => {
|
|
const client = {
|
|
getUiRegistry: vi.fn(async () => ({
|
|
schema_version: "agent-ui-registry@1",
|
|
chart_grammars: ["echarts-safe-subset"],
|
|
components: [{ id: "HistoryPanel", supportedSurfaces: ["side_panel", "unknown"] }],
|
|
actions: [{ id: "zoom_to_map", supportedSurfaces: ["map_overlay"] }]
|
|
})),
|
|
getModels: vi.fn(async () => ({
|
|
defaultModel: "model-a",
|
|
models: [{ id: "model-a", label: "Model A", description: "Default model", icon: "sparkle" }]
|
|
}))
|
|
} as Pick<AgentApiClient, "getUiRegistry" | "getModels"> as AgentApiClient;
|
|
|
|
await expect(fetchAgentBootstrap(client)).resolves.toEqual({
|
|
defaultModel: "model-a",
|
|
models: [{ id: "model-a", label: "Model A", description: "Default model", icon: "sparkle" }],
|
|
registry: {
|
|
schema_version: "agent-ui-registry@1",
|
|
chart_grammars: ["echarts-safe-subset"],
|
|
components: [{ id: "HistoryPanel", supportedSurfaces: ["side_panel"] }],
|
|
actions: [{ id: "zoom_to_map", supportedSurfaces: ["map_overlay"] }]
|
|
}
|
|
});
|
|
});
|
|
|
|
it("loads session summaries through the shared client", async () => {
|
|
const sessions = [
|
|
{
|
|
id: "session-1",
|
|
title: "会话",
|
|
createdAt: 1,
|
|
updatedAt: 2
|
|
}
|
|
];
|
|
const client = {
|
|
listSessions: vi.fn(async () => sessions)
|
|
} as Pick<AgentApiClient, "listSessions"> as AgentApiClient;
|
|
|
|
await expect(fetchAgentSessions(client)).resolves.toBe(sessions);
|
|
});
|
|
});
|