@@ -23,6 +23,27 @@ import {
|
23 | 23 | let dispatchReplyFromConfig: typeof import("./dispatch-from-config.js").dispatchReplyFromConfig; |
24 | 24 | let resetInboundDedupe: typeof import("./inbound-dedupe.js").resetInboundDedupe; |
25 | 25 | |
| 26 | +function firstRuntimeLoadCall() { |
| 27 | +return runtimePluginMocks.ensureRuntimePluginsLoaded.mock.calls[0]?.[0] as |
| 28 | +| { config?: unknown; workspaceDir?: unknown } |
| 29 | +| undefined; |
| 30 | +} |
| 31 | + |
| 32 | +function firstReplyDispatchCall() { |
| 33 | +return hookMocks.runner.runReplyDispatch.mock.calls[0] as |
| 34 | +| [ |
| 35 | +{ |
| 36 | +sessionKey?: string; |
| 37 | +sendPolicy?: string; |
| 38 | +inboundAudio?: boolean; |
| 39 | +}, |
| 40 | +{ |
| 41 | +cfg?: unknown; |
| 42 | +}, |
| 43 | +] |
| 44 | +| undefined; |
| 45 | +} |
| 46 | + |
26 | 47 | describe("dispatchReplyFromConfig reply_dispatch hook", () => { |
27 | 48 | beforeAll(async () => { |
28 | 49 | ({ dispatchReplyFromConfig } = await import("./dispatch-from-config.js")); |
@@ -109,27 +130,13 @@ describe("dispatchReplyFromConfig reply_dispatch hook", () => {
|
109 | 130 | }); |
110 | 131 | |
111 | 132 | expect(runtimePluginMocks.ensureRuntimePluginsLoaded).toHaveBeenCalledOnce(); |
112 | | -const runtimeLoadCall = runtimePluginMocks.ensureRuntimePluginsLoaded.mock.calls.at(0)?.[0] as |
113 | | -| { config?: unknown; workspaceDir?: unknown } |
114 | | -| undefined; |
| 133 | +const runtimeLoadCall = firstRuntimeLoadCall(); |
115 | 134 | expect(runtimeLoadCall?.config).toBe(emptyConfig); |
116 | 135 | expect(typeof runtimeLoadCall?.workspaceDir).toBe("string"); |
117 | 136 | expect(String(runtimeLoadCall?.workspaceDir).length).toBeGreaterThan(0); |
118 | 137 | |
119 | 138 | expect(hookMocks.runner.runReplyDispatch).toHaveBeenCalledOnce(); |
120 | | -const [replyDispatchEvent, replyDispatchRuntime] = |
121 | | -(hookMocks.runner.runReplyDispatch.mock.calls.at(0) as |
122 | | -| [ |
123 | | -{ |
124 | | -sessionKey?: string; |
125 | | -sendPolicy?: string; |
126 | | -inboundAudio?: boolean; |
127 | | -}, |
128 | | -{ |
129 | | -cfg?: unknown; |
130 | | -}, |
131 | | -] |
132 | | -| undefined) ?? []; |
| 139 | +const [replyDispatchEvent, replyDispatchRuntime] = firstReplyDispatchCall() ?? []; |
133 | 140 | expect(replyDispatchEvent?.sessionKey).toBe("agent:test:session"); |
134 | 141 | expect(replyDispatchEvent?.sendPolicy).toBe("allow"); |
135 | 142 | expect(replyDispatchEvent?.inboundAudio).toBe(false); |
|