




















@@ -76,6 +76,24 @@ async function expectMissingPath(operation: Promise<unknown>) {
7676expect(error?.code).toBe("ENOENT");
7777}
787879+function planParamsAt(callIndex: number): {
80+pluginMetadataSnapshot?: PluginMetadataSnapshot;
81+providerDiscoveryProviderIds?: string[];
82+providerDiscoveryTimeoutMs?: number;
83+workspaceDir?: string;
84+} {
85+const call = planOpenClawModelsJsonMock.mock.calls[callIndex];
86+if (!call) {
87+throw new Error(`expected models planner call #${callIndex + 1}`);
88+}
89+return call[0] as {
90+pluginMetadataSnapshot?: PluginMetadataSnapshot;
91+providerDiscoveryProviderIds?: string[];
92+providerDiscoveryTimeoutMs?: number;
93+workspaceDir?: string;
94+};
95+}
96+7997beforeAll(async () => {
8098vi.doMock("./models-config.plan.js", () => ({
8199planOpenClawModelsJson: (...args: unknown[]) => planOpenClawModelsJsonMock(...args),
@@ -138,10 +156,8 @@ describe("models-config write serialization", () => {
138156139157await ensureOpenClawModelsJson({}, agentDir);
140158141-const params = planOpenClawModelsJsonMock.mock.calls.at(0)?.[0] as
142-| { pluginMetadataSnapshot?: PluginMetadataSnapshot }
143-| undefined;
144-expect(params?.pluginMetadataSnapshot).not.toBe(snapshot);
159+const params = planParamsAt(0);
160+expect(params.pluginMetadataSnapshot).not.toBe(snapshot);
145161});
146162});
147163@@ -154,11 +170,9 @@ describe("models-config write serialization", () => {
154170155171await ensureOpenClawModelsJson({}, agentDir, { workspaceDir });
156172157-const params = planOpenClawModelsJsonMock.mock.calls.at(0)?.[0] as
158-| { workspaceDir?: string; pluginMetadataSnapshot?: PluginMetadataSnapshot }
159-| undefined;
160-expect(params?.workspaceDir).toBe(workspaceDir);
161-expect(params?.pluginMetadataSnapshot).toBe(snapshot);
173+const params = planParamsAt(0);
174+expect(params.workspaceDir).toBe(workspaceDir);
175+expect(params.pluginMetadataSnapshot).toBe(snapshot);
162176});
163177});
164178@@ -194,14 +208,9 @@ describe("models-config write serialization", () => {
194208});
195209196210expect(planOpenClawModelsJsonMock).toHaveBeenCalledTimes(2);
197-const params = planOpenClawModelsJsonMock.mock.calls.at(1)?.[0] as
198-| {
199-providerDiscoveryProviderIds?: string[];
200-providerDiscoveryTimeoutMs?: number;
201-}
202-| undefined;
203-expect(params?.providerDiscoveryProviderIds).toEqual(["anthropic"]);
204-expect(params?.providerDiscoveryTimeoutMs).toBe(5000);
211+const params = planParamsAt(1);
212+expect(params.providerDiscoveryProviderIds).toEqual(["anthropic"]);
213+expect(params.providerDiscoveryTimeoutMs).toBe(5000);
205214});
206215});
207216此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。