test: guard crestodian rescue mock calls · openclaw/openclaw@1b8410a
steipete
·
2026-05-12
·
via Recent Commits to openclaw:main
| Original file line number | Diff line number | Diff line change |
|---|
@@ -127,6 +127,14 @@ function commandContext(overrides: Partial<CommandContext> = {}): CommandContext
|
127 | 127 | }; |
128 | 128 | } |
129 | 129 | |
| 130 | +function requireFirstMockCall<T>(mock: { mock: { calls: T[][] } }, label: string): T[] { |
| 131 | +const call = mock.mock.calls.at(0); |
| 132 | +if (!call) { |
| 133 | +throw new Error(`expected ${label} call`); |
| 134 | +} |
| 135 | +return call; |
| 136 | +} |
| 137 | + |
130 | 138 | async function runRescue( |
131 | 139 | commandBody: string, |
132 | 140 | cfg: OpenClawConfig, |
@@ -230,7 +238,10 @@ describe("Crestodian rescue message", () => {
|
230 | 238 | ).resolves.toContain("search rows: calendar"); |
231 | 239 | expect(deps.runPluginsList).toHaveBeenCalledTimes(1); |
232 | 240 | expect(deps.runPluginsSearch).toHaveBeenCalledTimes(1); |
233 | | -const [searchQuery, searchRuntime] = deps.runPluginsSearch.mock.calls[0] ?? []; |
| 241 | +const [searchQuery, searchRuntime] = requireFirstMockCall( |
| 242 | +deps.runPluginsSearch, |
| 243 | +"plugins search", |
| 244 | +); |
234 | 245 | expect(searchQuery).toBe("calendar"); |
235 | 246 | expect(searchRuntime).toBeTypeOf("object"); |
236 | 247 | }); |
@@ -301,8 +312,10 @@ describe("Crestodian rescue message", () => {
|
301 | 312 | ); |
302 | 313 | |
303 | 314 | expect(deps.runAgentsAdd).toHaveBeenCalledTimes(1); |
304 | | -const [agentParams, agentRuntime, agentOptions] = deps.runAgentsAdd.mock |
305 | | -.calls[0] as unknown as [ |
| 315 | +const [agentParams, agentRuntime, agentOptions] = requireFirstMockCall( |
| 316 | +deps.runAgentsAdd, |
| 317 | +"agents add", |
| 318 | +) as unknown as [ |
306 | 319 | { name: string; workspace: string; nonInteractive: boolean }, |
307 | 320 | object, |
308 | 321 | { hasFlags: boolean }, |
|
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。