






















@@ -676,6 +676,69 @@ describe("OpenClaw SDK", () => {
676676]);
677677});
678678679+it("sends empty params for no-arg Gateway list helpers", async () => {
680+const transport = new FakeTransport({
681+"agents.list": { agents: [] },
682+"sessions.list": { sessions: [] },
683+"tasks.list": { tasks: [] },
684+"models.list": { models: [] },
685+"tools.catalog": { tools: [] },
686+"exec.approval.list": { approvals: [] },
687+"environments.list": { environments: [] },
688+});
689+const oc = new OpenClaw({ transport });
690+691+await expect(oc.agents.list()).resolves.toEqual({ agents: [] });
692+await expect(oc.sessions.list()).resolves.toEqual({ sessions: [] });
693+await expect(oc.tasks.list()).resolves.toEqual({ tasks: [] });
694+await expect(oc.models.list()).resolves.toEqual({ models: [] });
695+await expect(oc.tools.list()).resolves.toEqual({ tools: [] });
696+await expect(oc.approvals.list()).resolves.toEqual({ approvals: [] });
697+await expect(oc.environments.list()).resolves.toEqual({ environments: [] });
698+699+expect(transport.calls).toEqual([
700+{ method: "agents.list", params: {}, options: undefined },
701+{ method: "sessions.list", params: {}, options: undefined },
702+{ method: "tasks.list", params: {}, options: undefined },
703+{ method: "models.list", params: {}, options: undefined },
704+{ method: "tools.catalog", params: {}, options: undefined },
705+{ method: "exec.approval.list", params: {}, options: undefined },
706+{ method: "environments.list", params: {}, options: undefined },
707+]);
708+});
709+710+it("preserves explicit null params for Gateway list validation", async () => {
711+type ListMethod = (this: unknown, params: unknown) => Promise<unknown>;
712+const transport = new FakeTransport({
713+"agents.list": { agents: [] },
714+"sessions.list": { sessions: [] },
715+"tasks.list": { tasks: [] },
716+"models.list": { models: [] },
717+"tools.catalog": { tools: [] },
718+"exec.approval.list": { approvals: [] },
719+"environments.list": { environments: [] },
720+});
721+const oc = new OpenClaw({ transport });
722+723+await (oc.agents.list as unknown as ListMethod).call(oc.agents, null);
724+await (oc.sessions.list as unknown as ListMethod).call(oc.sessions, null);
725+await (oc.tasks.list as unknown as ListMethod).call(oc.tasks, null);
726+await oc.models.list(null);
727+await oc.tools.list(null);
728+await oc.approvals.list(null);
729+await oc.environments.list(null);
730+731+expect(transport.calls).toEqual([
732+{ method: "agents.list", params: null, options: undefined },
733+{ method: "sessions.list", params: null, options: undefined },
734+{ method: "tasks.list", params: null, options: undefined },
735+{ method: "models.list", params: null, options: undefined },
736+{ method: "tools.catalog", params: null, options: undefined },
737+{ method: "exec.approval.list", params: null, options: undefined },
738+{ method: "environments.list", params: null, options: undefined },
739+]);
740+});
741+679742it("keeps close terminal when it races a pending connect", async () => {
680743const transport = new DelayedConnectTransport({
681744"agents.list": { agents: [] },
@@ -713,7 +776,7 @@ describe("OpenClaw SDK", () => {
713776{
714777method: "exec.approval.list",
715778options: undefined,
716-params: undefined,
779+params: {},
717780},
718781{
719782method: "exec.approval.resolve",
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。