mirror of
https://github.com/openclaw/openclaw.git
synced 2026-08-28 05:16:23 -06:00
test: guard ui controller mock calls
This commit is contained in:
@@ -81,6 +81,21 @@ function createSaveState(): {
|
||||
};
|
||||
}
|
||||
|
||||
function requireRecord(value: unknown): Record<string, unknown> {
|
||||
if (!value || typeof value !== "object" || Array.isArray(value)) {
|
||||
throw new Error("Expected a non-array record");
|
||||
}
|
||||
return value as Record<string, unknown>;
|
||||
}
|
||||
|
||||
function requireFirstRequestCall(request: ReturnType<typeof vi.fn>): unknown[] {
|
||||
const [call] = request.mock.calls;
|
||||
if (!call) {
|
||||
throw new Error("Expected client request call");
|
||||
}
|
||||
return call;
|
||||
}
|
||||
|
||||
describe("loadAgents", () => {
|
||||
it("preserves selected agent when it still exists in the list", async () => {
|
||||
const { state, request } = createState();
|
||||
@@ -371,9 +386,11 @@ describe("saveAgentsConfig", () => {
|
||||
|
||||
await saveAgentsConfig(state);
|
||||
|
||||
expect(request.mock.calls[0]?.[0]).toBe("config.set");
|
||||
expect(request.mock.calls[0]?.[1]?.baseHash).toBe("hash-1");
|
||||
expect(JSON.parse(request.mock.calls[0]?.[1]?.raw as string)).toEqual({
|
||||
const [method, params] = requireFirstRequestCall(request);
|
||||
const requestParams = requireRecord(params);
|
||||
expect(method).toBe("config.set");
|
||||
expect(requestParams.baseHash).toBe("hash-1");
|
||||
expect(JSON.parse(String(requestParams.raw))).toEqual({
|
||||
agents: { list: [{ id: "main" }] },
|
||||
});
|
||||
expect(request).toHaveBeenNthCalledWith(2, "config.get", {});
|
||||
|
||||
@@ -58,6 +58,14 @@ function requireRecord(value: unknown): Record<string, unknown> {
|
||||
return value as Record<string, unknown>;
|
||||
}
|
||||
|
||||
function requireFirstRequestCall(request: ReturnType<typeof vi.fn>): unknown[] {
|
||||
const [call] = request.mock.calls;
|
||||
if (!call) {
|
||||
throw new Error("Expected client request call");
|
||||
}
|
||||
return call;
|
||||
}
|
||||
|
||||
function expectTextChatMessage(message: unknown, role: string, text: string): void {
|
||||
const record = requireRecord(message);
|
||||
expect(record.role).toBe(role);
|
||||
@@ -901,8 +909,9 @@ describe("sendChatMessage", () => {
|
||||
|
||||
expect(result).toMatch(UUID_V4_RE);
|
||||
expect(request).toHaveBeenCalledTimes(1);
|
||||
expect(request.mock.calls[0]?.[0]).toBe("chat.send");
|
||||
const sendParams = requireRecord(request.mock.calls[0]?.[1]);
|
||||
const [requestMethod, requestParams] = requireFirstRequestCall(request);
|
||||
expect(requestMethod).toBe("chat.send");
|
||||
const sendParams = requireRecord(requestParams);
|
||||
expect(sendParams.message).toBe("summarize");
|
||||
expect(sendParams.attachments).toEqual([
|
||||
{
|
||||
@@ -950,8 +959,9 @@ describe("sendChatMessage", () => {
|
||||
|
||||
expect(result).toMatch(UUID_V4_RE);
|
||||
expect(request).toHaveBeenCalledTimes(1);
|
||||
expect(request.mock.calls[0]?.[0]).toBe("chat.send");
|
||||
const sendParams = requireRecord(request.mock.calls[0]?.[1]);
|
||||
const [requestMethod, requestParams] = requireFirstRequestCall(request);
|
||||
expect(requestMethod).toBe("chat.send");
|
||||
const sendParams = requireRecord(requestParams);
|
||||
const attachments = sendParams.attachments;
|
||||
expect(Array.isArray(attachments)).toBe(true);
|
||||
const [attachmentParam] = attachments as unknown[];
|
||||
|
||||
Reference in New Issue
Block a user